由于一些奇怪的原因,当我只在数组中的项目时,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();
}
答案 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
,您还应采取更多预防措施。