php爆炸数组插入错误

时间:2017-01-03 07:40:54

标签: php mysql sql

当我尝试将带有另一个字符串值的数组插入数据库时​​,它给列计数与值计数错误不匹配。我的代码给出了发生此错误的任何解释

$Skills = "java,php";
$memberId ="1";
$wordArray = explode(",", $Skills);
$query = "INSERT INTO tempskill (skill,memberId) VALUES ('" .implode("'),  ('", $wordArray). "'  , '".$memberId."' ) ";
echo  $Skills;                   

mysql_query($query) or die ('Error :' . mysql_error());

此代码输出为 - java,C#错误:列数与第1行的值计数不匹配

1 个答案:

答案 0 :(得分:1)

要为每对插入的值添加memberId,您应该使用:

$query = "INSERT INTO tempskill (skill,memberId) VALUES ('" .implode("', '" . $memberId . "'),  ('", $wordArray) . "', '" . $memberId . "')";
// echoes `INSERT INTO tempskill (skill,memberId) VALUES ('java', '1'),  ('php', '1')`

但是

  1. mysql扩展程序已过时且在php7中已删除
  2. 这样的代码对sql注入很容易理解。
  3. 所以,我建议你转到PDO / mysqli apis并准备好陈述。更多信息here