$db = mysql_connect("localhost","root","123");
mysql_select_db("website_categorization") or die("\n error selecting database" );
$keyword_array = preg_split('/[\s,]+/', $tag);
foreach($keyword_array as $tag1)
{
mysql_query("INSERT INTO category_keyword(ID_Category, Keyword) VALUES(2,$tag1)");
}
echo "\nAffected rows are ".mysql_affected_rows()."\n";
mysql_close($db);
你能告诉我这段代码有什么问题吗?...我打算从数组$ keyword_array中将行插入category_keyword表。我收到错误“受影响的行为-1”并且插入不起作用
答案 0 :(得分:1)
答案 1 :(得分:1)
你应该引用并转义字符串值 您还应该处理错误,并通知他们 您还应该编写 distinct 语句,以便以后能够读取您的代码(以及让其他人阅读它)。
$tag1 = mysql_real_escape_string($tag1);
$sql = "INSERT INTO category_keyword(ID_Category, Keyword) VALUES(2,'$tag1')";
mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);
答案 2 :(得分:0)
您应引用并转义您的字符串列
$ tag1 = mysql_real_escape_string($标记1); mysql_query(“INSERT INTO category_keyword(ID_Category,关键字) VALUES(2, '$ TAG1')“);
您还应该处理mysql查询错误,以了解查询失败的原因。使用当前代码,你永远不知道为什么它会失败。处理mysql错误会更好。
mysql_query('Your query') or trigger_error(mysql_error());
答案 3 :(得分:0)
你需要在查询中封装字符串$ tag,否则mysql会认为它是一个列名
mysql_query("INSERT INTO category_keyword(ID_Category, Keyword) VALUES(2,'".mysql_real_escape_string($tag1)."')");
答案 4 :(得分:-1)
您可以使用:
mysql_query("INSERT INTO category_keyword SET ID_Category=2, Keyword=".$tag1.");
更好的语法理解:)