Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 运行此查询时返回false_Php_Mysql - Fatal编程技术网

Php 运行此查询时返回false

Php 运行此查询时返回false,php,mysql,Php,Mysql,有什么理由不起作用吗?当我将查询打印到屏幕并通过phpMyAdmin运行它时,它就工作了。我省略了连接数据库的部分(MySQL) $query=“启动事务;”; $query.=“在表1(文本)中插入值(“$query_description”);”; 对于($i=0;$iquery($query); 看起来您正在尝试运行多个语句,可能是通过只支持单个语句的mysql\u query()或mysqli->query()。相反,您需要使用mysqli->multi\u query()或mysql\

有什么理由不起作用吗?当我将查询打印到屏幕并通过phpMyAdmin运行它时,它就工作了。我省略了连接数据库的部分(MySQL)

$query=“启动事务;”;
$query.=“在表1(文本)中插入值(“$query_description”);”;
对于($i=0;$iquery($query);

看起来您正在尝试运行多个语句,可能是通过只支持单个语句的
mysql\u query()
mysqli->query()
。相反,您需要使用
mysqli->multi\u query()
mysql\u multi\u query()

一次运行多个查询,您可以一次运行一个查询,也可以使用该方法。

您试图通过创建包含查询的字符串来运行多个查询,然后将其发送到数据库。看起来您的数据库对象不支持该功能,您可以运行多个查询的唯一方法是使用mysqli的
multi\u query
函数

但是,有一个缺点-如果事务没有提交怎么办?如果有错误怎么办?回滚和错误消息在哪里


PDO将是我在这里的选择,使用try/catch块,我将创建一个准备好的语句来发送,而不是一个包含所有查询的巨大字符串。它不仅更加优雅,而且更易于调试。

mysql\u查询不支持多个查询

查看更多信息。简言之您应该调用$db->query,而不是附加到$query


注意。事务只适用于innodb(至少上次我检查时是这样)

您需要添加一些错误处理,告诉您如果它不起作用会出现什么问题。通常就是这样做的。因为我们不知道所有这些变量包含什么,所以现在不可能给出一个有意义的答案。如果您执行
echo$query
,您会得到什么?MySQL错误消息是什么?相关:(假设您使用的是PDO)您不能同时运行多个查询(由
分隔)。尝试分别运行每个查询。如果您正在使用PDO,请查看和。
$query = "START TRANSACTION; ";
$query .= "INSERT INTO table1(text) VALUES('$question_description'); ";

for ($i = 0; $i < count($processed_answers); $i++) {
    $query .= "INSERT INTO table2(question_id, text, serial_number, is_correct) ".
              "VALUES($question_id, '".$processed_answers[$i]."', '".$serial_numbers[$i]."', 0); ";
}

foreach($categories as $category) {
    $query .= "INSERT INTO table3 VALUES($question_id, $category); ";
}

$query .= "COMMIT; ";
$result = $db->query($query);