此代码工作并将所有正确的信息输入到数据库中,但错误检查返回错误。我可以删除错误检查,但我害怕制造一些噩梦,这些噩梦后来会再次困扰我,或者我遗漏了一个基本问题:
$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() );
}输出是:" error : sql5b not updated您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,了解在第1行'Resource id #7‘附近使用的正确语法“"sql6b updated successfully”
当我检查数据库时,所有条目都是正确的。如果sql5a不能工作,sql6b也不能工作,所以我对这个错误感到困惑。
示例类别为:旅行/休闲类别最初是从表单响应中创建的:$category = htmlentities($fbdetail' Category ',ENT_QUOTES);并成功输入到数据库中。id号是使用AUTO_INCREMENT分配的。
发布于 2012-07-13 18:32:53
您将查询赋值给变量$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,因为它不在这段代码中。
发布于 2012-07-13 18:08:23
插入的语法为:
INSERT INTO table(col1, col2 ...) VALUES(val1, val2 ...)在您的特定情况下:
$sql6a = "INSERT INTO table(fbid, categoryid) VALUES('{$fbid2}','{$oldcategoryid}')"https://stackoverflow.com/questions/11468352
复制相似问题