您好,我遇到以下问题:
当我尝试使用 mysqli_multi_query 函数执行几个 INSERT INTO 查询时,它们都没有被执行,并且我收到一个标准的“您的 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) 附近使用的正确语法;在第 1 行插入生产价值'
字符串(210)“插入生产值(120、103、10、0、0);插入生产值(120、107、5、1、0);插入生产值(120、106、7、2, 0 ); 插入生产值( 120, 103, 20, 0, 1 ); "
布尔(假)
如果您想自己测试此行为,请参阅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 ;
我是否忽略了某些东西,或者这只是奇怪的行为?