在MySQL中获得1064错误但查询仍然完成?不知道为什么!

时间:2010-06-02 15:58:12

标签: php mysql mysql-error-1064

我试图在MySQL数据库中插入很多字段,有些字段失败,所以我在我的PHP脚本中添加了一些代码来尝试追踪正在发生的事情。

替换似乎工作,因为我可以看到在mysql中填充的字段,但我收到此错误:

  

1064:您的SQL出错了   句法;检查手册   对应于您的MySQL服务器   用于正确语法的版本   第1行附近的“1”

//insert query
if (strlen($link_name)>0)
{
$query = mysql_query("REPLACE into jos_mt_links
(link_id, link_name, alias, link_desc, user_id, link_approved, metadesc, link_created, link_modified, website, price)
VALUES ('$link_id','$link_name','$link_name','$description','63','1','$metadesc','$link_created','$link_modified','$website','$cost')");
echo $link_name . "has been inserted <br />";
print "SQL-Query: ".$query."<br>";

    if(mysql_query($query,$db))
   {
    echo "<center><font face='$fonts' size=2 color='$green'>";
    echo " OK !</font><br><br>\n";
   }
  else
   {
    echo "<center><font face='$fonts' size=3 color='$red'>";
    echo "Error<br><br>";
       echo mysql_errno() . ":" . mysql_error() . "</font><br>\n";
   }

1 个答案:

答案 0 :(得分:1)

您的SQL没有任何问题。您正在为$query来电的结果分配mysql_query()

$query = mysql_query("REPLACE into jos_mt_links
    (link_id, link_name, alias, link_desc, user_id, link_approved, metadesc,
    link_created, link_modified, website, price)
    VALUES
    ('$link_id','$link_name','$link_name','$description','63','1','$metadesc','$link_created','$link_modified','$website','$cost')");
作为mysql_query()查询的结果,

true会返回falseREPLACE,但更重要的是您要分配结果,而不是SQL查询你正在执行。

此外,在这里:

if(mysql_query($query,$db))

您正在同一个mysql_query()变量上再次调用$query ,该变量现在的值为true(因为您说您的查询正在运行且您的数据库正在正常更新)。 PHP将boolean true解释为字符串'1',并告诉MySQL运行名为1的查询,这会产生错误。

您可能打算像这样分配$query,以便您的if条件正常运行:

$query = "REPLACE into jos_mt_links
    (link_id, link_name, alias, link_desc, user_id, link_approved, metadesc,
    link_created, link_modified, website, price)
    VALUES
    ('$link_id','$link_name','$link_name','$description','63','1','$metadesc','$link_created','$link_modified','$website','$cost')";

并在if语句中调用echo

另一件事:正如Mark Ba​​ker所指出的那样,请确保您的变量已使用mysql_real_escape_string()进行转义,然后再直接将其粘贴到您的SQL中。