无法使用php插入到mysql数据库中

时间:2011-04-07 10:05:34

标签: php mysql

$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”并且插入不起作用

5 个答案:

答案 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.");

更好的语法理解:)