2012-07-13 114 views
0

此代码工作并将所有正确的信息输入数据库,但错误检查返回错误。我可以删除错误检查,但我怕创建回来以后困扰我还是有些噩梦的我就是缺少一个根本性的问题:mysql_query有效,但错误检查返回错误

$sql5a = mysql_query("SELECT id FROM categories WHERE category='$category'"); 
     $categoryresult = mysql_fetch_array($sql5a); 
     $oldcategoryid = $categoryresult['id']; 
     $sql6a = "INSERT INTO lookupcategory SET 
     fbid='$fbid2', 
     categoryid='$oldcategoryid'"; 
      if (@mysql_query($sql5b)) { 
           echo('sql5b updated successfully<br>'); 
          } else { 
           echo('Error: sql5b not updated<br>'.mysql_error()); 
         } 
          if (@mysql_query($sql6b)) { 
           echo('sql6b updated successfully<br>'); 
          } else { 
           echo('Error: sql6b not updated<br>'.mysql_error()); 
         } 

输出是:“错误:sql5b没有更新 您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行“资源ID#7”附近使用正确的语法“ ”sql6b更新成功“

当我检查数据库中的所有条目都正确如果sql5a不起作用,sql6b就无法工作,因此我对这个错误感到困惑。

样品类别将是:旅行/休闲 类别最初是从一种形式响应创建: $类别=ヶ辆($ fbdetail [ '类别'],ENT_QUOTES); 并成功输入数据库。一个ID号码使用AUTO_INCREMENT分配。

+0

您的INSERT语法不正确。另外,根据你得到的错误判断,你在查询字符串中使用了一个资源变量。 – lafor 2012-07-13 10:13:27

回答

0

您指定的查询变量$sql5a,但拨打@mysql_query($sql5b)$sql5b不存在(至少在本示例中)。与$sql6a相同...

您可以使用INSERT语法,但不使用VALUES,但您需要省略INTO关键字。

$sql5a = mysql_query("SELECT id FROM categories WHERE category='$category'"); 
if ($res5a = @mysql_query($sql5a)) { // first execute query and store resource in variable 
    echo('sql5a selected successfully<br>'); 
} else { 
    echo('Error: sql5a failed<br>'.mysql_error()); 
} 
$categoryresult = mysql_fetch_array($res5a); // fetch array passing the RESOURCE var, NOT query string 
$oldcategoryid = $categoryresult['id']; 
$sql6a = "INSERT lookupcategory SET 
fbid='$fbid2', 
categoryid='$oldcategoryid'"; 

if (@mysql_query($sql6a)) { 
    echo('sql6a inserted successfully<br>'); 
} else { 
    echo('Error: sql6a failed<br>'.mysql_error()); 
} 

我不知道你来自哪里得到$fbid2$category,因为它不是在这一段代码。

0

用于插入的语法是:

INSERT INTO table(col1, col2 ...) VALUES(val1, val2 ...) 

在您的具体情况:

$sql6a = "INSERT INTO table(fbid, categoryid) VALUES('{$fbid2}','{$oldcategoryid}')" 
+0

还有error = values(... excepts strings here ...)所以权限是INSERT INTO'table'('col1','col2')VALUES('val1','val2') – Yang 2012-07-13 10:12:26