我有一个sql查询,可以在phpmyadmin上运行而没有问题但SQL语法错误在php mysql_Query
查询:
SELECT `_id` INTO @task_id
FROM `SepidarSoft_Portal`.`Permission`
WHERE `FID`='1' and `GID`='Request' and `Permission`='Client' ;
INSERT INTO `SepidarSoft_Portal`.`Permission`
SET `_id`=@task_id,`CTime`='1362128156',`CUser`='1',`FID`='1',`KFID`='0',`GID`='Request',`KGID`='1',`Permission`='Client',`Expired`='0',`Direction`='1',`Access`='200',`State`='1'
ON DUPLICATE KEY UPDATE `CTime`='1362128156',`CUser`='1',`FID`='1',`KFID`='0',`GID`='Request',`KGID`='1',`Permission`='Client',`Expired`='0',`Direction`='1',`Access`='200',`State`='1'
mysql_query显示此错误
添加您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'INSERT INTO
SepidarSoft_Portal
附近使用正确的语法。Permission
SET_id
= @ task_id,CTime
='13621'在第2行
任何人都知道问题是什么?
答案 0 :(得分:2)
<强> mysql_query 强>
mysql_query()发送唯一查询(多个查询不是 支持)到服务器上当前活动的数据库 与指定的link_identifier相关联。
因此请单独执行您的陈述,这样更安全。
或者,如果您坚持使用mysql_*
扩展程序,则可以使用mysqli_multi_query()
<强> mysqli_multi_query 强>
执行一个或多个由a连接的查询 分号。
但最好切换到PDO
或mysqli_*
分机。 {@ 1}}已被弃用。
答案 1 :(得分:1)
您需要在单独的命令中执行这两个查询。另请注意那些建议您使用mysql_query()
的人,因为已弃用。请改用mysqli_query()或PDO函数。
答案 2 :(得分:0)
您需要在PHP中将它们作为2个单独的SQL查询运行。因此,使用2个mysql_query()语句,您将不再收到错误。
此外,您应该将代码升级为不再使用mysql_语句,因为它们已被弃用,但要使用mysqli或PDO。
答案 3 :(得分:0)
原因如下:
mysql_query()发送一个唯一的查询(多个查询不是 支持)到服务器上当前活动的数据库 与指定的link_identifier相关联。
请注意:尽量避免MySQL扩展,尝试使用PDO或预备语句。
答案 4 :(得分:0)
你必须在下面使用:
INSERT INTO epidarSoft_Portal`.`Permission
(column1, column2, column3, column4)
VALUES
('" . $val1 . "', '" . $val2 . "', '" . $val3 . "', '" . $val4 . "')
ON DUPLICATE KEY UPDATE
column2='" . $val2 . "',
column3='" . $val3 . "',
column4='" . $val4 . "'"
);