mysql_query有效,但错误检查返回一个错误


mysql_query works but error check returns an error

此代码有效,并将所有正确的信息输入数据库,但错误检查返回错误。我可以删除错误检查,但我担心会造成一些噩梦,稍后会再次困扰我,或者我错过了一个根本问题:

    $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语法有错误;在第1行的"Resource id#7"附近查看与MySQL服务器版本对应的手册,以获得正确的语法。"sql6b更新成功"

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

示例类别为:旅行/休闲类别最初是根据表单响应创建的:$category=htmlentities($fbdetail["类别"],ENT_QUOTES);并成功进入数据库。使用AUTO_INCREMENT分配了一个id号。

将查询分配给变量$sql5a,但调用@mysql_query($sql5b)$sql5b不存在(至少在这个样本中)。与$sql6a相同。。。

您可以在不使用VALUES的情况下使用INSERT语法,但需要提交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,因为它不在这段代码中。

插入的语法为:

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

在您的具体情况下:

$sql6a = "INSERT INTO table(fbid, categoryid) VALUES('{$fbid2}','{$oldcategoryid}')"
相关文章: