$con = mysqli_connect('localhost','root','',"z_db_test");
$tablename = 'test';
$about = 'Some info';
$firstname = 'Doe';
$lastname = 'Joe';
$datas = array('about'=>$about,'firstname'=>$firstname,'lastname'=>$lastname);
function addeverything($tablename,$datas)
{
$keys= array_keys($datas);
$insert = "INSERT INTO ".$tablename."
('`'.implode('`,`', $keys).'`')
VALUES(" '
".implode("
','
", $datas)."
'
") ";
return mysqli_query($insert);
}
addeverything('test',array('about'=>$about,'firstname'=>$firstname,'lastname'=>$lastname));
所以我得到了错误
解析错误:语法错误,意外'" .implode("''(T_CONSTANT_ENCAPSED_STRING)在C:\ xampp \ htdocs \ test \中第20行的index.php
如何解决错误?
答案 0 :(得分:0)
这些错误表明你错过了一个“或者某个地方的错误。这是一个过于复杂的陈述,试着简化它。
你可以这样做。
function enquote($val){return sprintf("`%s`", $val);};
$insert = "INSERT INTO ". $tablename ."( ". implode(',', $keys ) ." )
VALUES ( ". implode(",", array_map( "enquote", $datas )) .")";
enquote函数将在所有引用它们的值周围添加`。
此查询不是SQL注入证明,因此请注意。