php - mysqli_multi_query多次插入失败

标签 php mysqli syntax-error insert-into mysqli-multi-query

问候,我遇到以下问题:
当我尝试使用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 );
执行此代码将导致:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO production VALUES( 120, 107, 5, 1, 0 ); INSERT INTO production VALUE' at line 1

string(210) "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 ); "

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 ;
我是否正在忽略某些东西,或者这仅仅是奇怪的行为?

最佳答案

我会这样做以最大程度地减少出错的机会

INSERT INTO production VALUES (120,103,10,0,0), 
(120,107,5,1,0), (120,106,7,2,0), (120, 103,20,0,1);

关于php - mysqli_multi_query多次插入失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451335/

相关文章:

php - 无法输出个人资料页面的缩略图

php - 如何将 mysqli_query 结果转换为 int?

php - 单例类和mysqli事务

arrays - J叉评估

java - 在函数 "isDigit"java.lang.ArrayIndexOutOfBoundsException : 5

php - mysqli_fetch_assoc 在 0 的情况下返回零结果

php - Zend 路线和 SEO

php - 如何修复 PHP 警告 : PHP Startup: Unable to load dynamic library 'php_ffmpeg.dll'

syntax-error - 从排序列表中删除重复项(OCaml)

php - 检测编码并使一切变为 UTF-8