0) {$query .="INSERT INTO ped_prod (`ped_id`, `prod_id-6ren">
gpt4 book ai didi

Mysql 语法错误 - Backtics 无法解决它

转载 作者:行者123 更新时间:2023-11-29 14:11:16 25 4
gpt4 key购买 nike

我正在 PHP 中编译查询以将产品插入数据库:

$query = "";

if ($A > 0) {$query .="INSERT INTO ped_prod (`ped_id`, `prod_id`, `cant`) VALUES ($last_id, 1, $A); ";}

if ($B > 0) {$query .="INSERT INTO ped_prod (`ped_id`, `prod_id`, `cant`) VALUES ($last_id, 2, $B); ";}

if ($C > 0) {$query .="INSERT INTO ped_prod (`ped_id`, `prod_id`, `cant`) VALUES ($last_id, 3, $C); ";}

通过 mysql_query($prodquery, $conexion) 运行查询时,出现以下错误:

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 ped_prod (`ped_id`, `prod_id`, `cant`) VALUES (13, 3, 2)' at line 1

我已经尝试过:
- 交换引号 (')、双引号 (") 和反引号 (`)
- 检查MySQL保留字列表
- 在 PHPmyAdmin 中运行查询(它显示“#1受影响的行”,但它将数据加载到表中,但在浏览器中执行脚本时情况并非如此)

我错过了什么?提前致谢!

最佳答案

mysql_query() 一次仅支持一个查询。请参阅respective PHP docs :

mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier.

因此,就您的情况而言,只需单独运行每个 INSERT 语句就可以了。

由于所有插入都相似,另一个选项是通过值子句的串联来连接它们:

$values = array();
if ($A > 0) {$values[] ="($last_id, 1, $A)";}

if ($B > 0) {$values[] ="($last_id, 2, $B)";}

if ($C > 0) {$values[] ="($last_id, 3, $C)";}

// echo query if needed
if ( count( $values ) > 0 ) {
$queries = 'INSERT INTO ped_prod (`ped_id`, `prod_id`, `cant`) VALUES ' . implode( ',', $values );

// execute query
// ...
}

此外,mysql_X 函数已弃用。切换至PDOmysqli .

关于Mysql 语法错误 - Backtics 无法解决它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13477588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com