0

此代码有效并将所有正确信息输入数据库,但错误检查返回错误。我可以删除错误检查,但我害怕制造一些噩梦,这些噩梦会在以后困扰我,或者我错过了一个基本问题:

    $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 无法工作,因此我对错误感到困惑。

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

4

2 回答 2

0

插入的语法是:

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

在您的具体情况下:

$sql6a = "INSERT INTO table(fbid, categoryid) VALUES('{$fbid2}','{$oldcategoryid}')"
于 2012-07-13T10:08:22.563 回答
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从哪里得到,因为它不在这段代码中。

于 2012-07-13T10:32:53.307 回答