我有一个函数做一个简单的插入,但我试图通过传递一个数组使得该方法更健壮。 这就是我数组传递到它:PHP准备好的语句与数组
$form_data = array(
"sort_order"=>$_POST['sort_order'],
"name"=>$_POST['page_name'],
"text"=>$_POST['page_text'],
"image"=>$_POST['page_image'],
"meta_desc"=>$_POST['meta_desc'],
"meta_kw"=>$_POST['meta_kw'],
"meta_author"=>$_POST['meta_author'],
"image_thumb"=>"NULL",
);
这里是功能代码:
public function insert_data($array){
$keys = array();
$values = array();
foreach($array as $k => $v){
$keys[] = $k;
if(!empty($v)){
$values[] = $v;
} else {
$values[] = "NULL";
}
}
$stmt = self::$mysqli->stmt_init();
$query = "INSERT INTO `".DB_TABLE_PAGES."` (".implode(",",$keys).") VALUES (?,?,?,?,?,?,?,?)";
$stmt->prepare($query);
$stmt->bind_param('ssssssss',implode(",",$values));
//$stmt->execute();
}
,但我得到这个错误: 在类型定义字符串元素不匹配数数绑定变量。
我知道问题是什么,但我不明白我如何实现它。
我用Google搜索和整个这个线程传来:
可以在任何一个可以帮助我苏斯这一点?
千恩万谢
什么是'$ query'的价值? – 2011-05-30 17:00:57
你的意思是我传入函数来构建查询的数组? – Adamski 2011-05-30 17:03:43
$ query在使用前定义了1行。 – Evert 2011-05-30 17:04:11