mysqli_multi_query с CREATE TABLE и INSERT INTO

$query = "INSERT INTO abc VALUES ('1', '2', '3')";
$send_to_mysql = mysqli_query($connection, $query);

OK.

$query = "CREATE TABLE abc (a varchar(255), b varchar(255), c varchar(255))";
$send_to_mysql = mysqli_query($connection, $query);

OK.

$query = "CREATE TABLE abc (a varchar(255), b varchar(255), c varchar(255))";
$query .= "INSERT INTO abc VALUES ('1', '2', '3')";
$send_to_mysql = mysqli_multi_query($connection, $query);

нет. В чем проблема?


person Kratalin Jan    schedule 01.04.2014    source источник
comment
Отсутствует разделитель точки с запятой?   -  person renick    schedule 01.04.2014
comment
Ха-ха. Не могу поверить. Спасибо!   -  person Kratalin Jan    schedule 01.04.2014


Ответы (2)


Поставьте точку с запятой между двумя вашими запросами. Поскольку вы помещаете два запроса в одну строку, вам нужно разделить их, чтобы MySQL понял, что у вас есть два запроса:

$query = "CREATE TABLE abc (a varchar(255), b varchar(255), c varchar(255));";
$query .= "INSERT INTO abc VALUES ('1', '2', '3')";
person B F    schedule 01.04.2014

Поместите точку с запятой в качестве разделителя между двумя запросами, например

$query = "CREATE TABLE abc (a varchar(255), b varchar(255), c varchar(255));";
mysqli_multi_query($connection, $query);
$query = "INSERT INTO abc VALUES ('1', '2', '3')";
$send_to_mysql = mysqli_multi_query($connection, $query);
person Sadikhasan    schedule 01.04.2014