我有一個函數做一個簡單的插入,但我試圖通過傳遞一個數組使得該方法更健壯。 這就是我數組傳遞到它: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