列数与使用变量的第1行的值计数不匹配

时间:2015-04-12 04:04:42

标签: php sql

由于一些奇怪的原因,当我只在数组中的项目时,php语句工作正常,但每次我添加第二个时我都会收到错误"列数与第1行和第34行的值计数不匹配;我显然有正确的列数。请帮忙

$ form_array =内爆("",阵列("詹姆斯""褐色&#34));

$db_array=implode(",",array('firstname','lastname'));

$ query =" INSERT INTO application($ db_array)                                 值(' $阵列')&#34 ;;

$dbquery=mysql_query($query);
if(!$dbquery){
    echo mysql_error();
} 

1 个答案:

答案 0 :(得分:0)

您的值未正确引用。 (并且您使用$array代替$form_array)。 在imploding = $form_array后注意'james,brown'

将(和$db_array)放入查询字符串中,最终得到:

$query = "INSERT INTO application (firstname, lastname) VALUE ('james,brown');

通知"詹姆斯"和"棕色"在一个字符串中一起引用 - 因此列数不匹配值计数。

你真的应该在输入上使用查询字符串转义功能 - 例如mysql_real_escape_string

写下我的头顶,所以可能在某处有一个小的语法错误,但下面的例子应该推动你朝着正确的方向:

$form_array = implode(',', array_map('mysql_real_escape_string', array('james', 'brown')));
$db_array = implode(',', array('firstname','lastname'));
$query = "INSERT INTO application ($db_array) VALUES ($form_array)";

请注意,如果用户输入以某种方式提供$db_array,您还应采取更多预防措施。