PHP中的mysql_query包含返回mysql错误的变量

时间:2015-08-01 18:22:39

标签: php mysql mysqli

我的代码在运行时归档成员数据库中的旧成员,返回

  

您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便使用“DELETE FROM members”附近的正确语法WHERE member_ref = 155'在第5行。

它应该将条目复制到相同的存档'来自'成员的表格'并删除成员中的原文。

$ref = '155';

$leave = mysql_query("  INSERT INTO archive 
                        SELECT *
                        FROM members
                        WHERE member_ref = ".$ref.";
                        DELETE FROM members
                        WHERE member_ref = ".$ref ) or die(mysql_error());

我知道我应该使用mysqli,但我没有时间将整个系统(约120页)从mysql标准化到mysqli。

它将155解析为第二个$ ref

使用phpmyadmin的SQL窗口并完美输入以下内容。

INSERT INTO archive 
                        SELECT *
                        FROM members
                        WHERE member_ref = 155;
                        DELETE FROM members
                        WHERE member_ref = 155

我错过了什么?

2 个答案:

答案 0 :(得分:2)

使用单独调用,如See Details About mysql_query

$leave = mysql_query("  INSERT INTO archive 
                        SELECT *
                        FROM members
                        WHERE member_ref = '$ref' ") or die(mysql_error());

$leave = mysql_query("  DELETE FROM members
                        WHERE member_ref = '$ref'") or die(mysql_error());

答案 1 :(得分:0)

如果你去PHP手册,它就写在第一行:

  

mysql_query()发送一个唯一的查询(不支持多个查询)

http://php.net/manual/en/function.mysql-query.php

因此,您应将查询分为mysql_query()次来电。