Как вставить и выбрать запрос одновременно в MySQL? - PullRequest
0 голосов
/ 28 марта 2019

У меня есть одно имя таблицы Blog, и я вставляю данные в таблицу с помощью следующего запроса

INSERT INTO `blog`(title,desc) VALUES ('blog1','description')

А затем я выбираю данные из таблицы с помощью

SELECT * FROM `blog`

Это дает два попадания в базу данных.Есть ли какой-нибудь возможный способ сделать оба запроса одновременно.Я хочу сделать процесс одним попаданием в базу данных.

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Вот документ

https://www.php.net/manual/en/mysqli.quickstart.multiple-statement.php

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$sql = "SELECT COUNT(*) AS _num FROM test; ";
$sql.= "INSERT INTO test(id) VALUES (1); ";
$sql.= "SELECT COUNT(*) AS _num FROM test; ";

if (!$mysqli->multi_query($sql)) {
    echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        var_dump($res->fetch_all(MYSQLI_ASSOC));
        $res->free();
    }
} while ($mysqli->more_results() && $mysqli->next_result());
?>
0 голосов
/ 28 марта 2019

Полагаю, вы можете использовать следующее утверждение:

INSERT INTO blog (title, desc) VALUES ('blog1', 'description') SELECT * ОТ blog;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...