Привет, у меня возникла следующая проблема:
Когда я пытаюсь выполнить несколько запросов INSERT INTO с помощью функции mysqli_multi_query, ни один из них не выполняется, и я получаю стандартное сообщение «У вас ошибка в вашемСинтаксис SQL "ошибка, но когда я беру точно такую же строку, которую я передал функции, вставляю в PHPMyAdmin и выполняю ее, она работает безупречно!
Вот запросы, которые я пытаюсь выполнить:
INSERT INTO production VALUES( 120, 103, 10, 0, 0 );
INSERT INTO production VALUES( 120, 107, 5, 1, 0 );
INSERT INTO production VALUES( 120, 106, 7, 2, 0 );
INSERT INTO production VALUES( 120, 103, 20, 0, 1 );
Это одна строка, разделенная пробелом после точки с запятой.
Вот что я делаю в коде:
$querytext = $queries // Get all the queries
$query_result = mysqli_multi_query( $this->_connection, $querytext );
if( mysqli_errno($this->_connection) > 0)
echo mysqli_error($this->_connection);
var_dump( $querytext );
var_dump( $query_result );
Выполнение этого кода приводит к:
У вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'INSERT INTO production VALUES (120, 107, 5, 1, 0);INSERT INTO Production VALUE 'в строке 1
string (210) "INSERT INTO Production LALES (120, 103, 10, 0, 0); INSERT INTO производственные VALUES (120, 107, 5, 1, 0); INSERT INTO производственные значения (120, 106, 7, 2, 0); INSERT INTO производственные значения (120, 103, 20, 0, 1); "
bool (false)
Если вы хотите сами проверить это поведение, вот таблица production
:
CREATE TABLE `production` (
`colonyID` INT NOT NULL ,
`resource_type_being_built` INT NOT NULL ,
`amount_requested` INT NOT NULL ,
`build_list_position` INT NOT NULL ,
`production_number` INT NOT NULL ,
INDEX ( `colonyID` )
) ENGINE = MYISAM ;
Я что-то пропускаю или это просто странное поведение?