我可以echo'ed輸出轉換到該在phpMyAdmin去執行SQL語句...錯誤:SQLSTATE [hy093]:無效的參數號
從這:
INSERT INTO crumbs (ip_address,ip_address_2,device_info,user_id,connections) VALUES(?,?,?,?,?)Value:'00.000.000.000', '00.000.000.000', 0,0000, 1
進入這個:
INSERT INTO crumbs (ip_address,ip_address_2,device_info,user_id,connections) VALUES('00.000.000.000', '00.000.000.000', 0,0000, 1)
它插入到數據庫中的數據,沒有錯誤,但它執行通過PH P-PDO ...
有了:
SQLSTATE[HY093]: Invalid parameter number
代碼:
$columns = '('.implode(',', array_keys($user_connection)).''.",user_id,connections)";
$inserts="(".implode(',',array_fill(0,count($user_connection)+2, '?')).")";
$values = implode(', ',($user_connection)).",$user_id, 1";
$sql_insert = "INSERT INTO crumbs ".$columns." VALUES".$inserts;
$stmt = $this->_db->prepare($sql_insert);
$stmt->execute(array($values));
編輯 - 添加$ user_connection
$user_connection [ 'ip_address'] = "'".$_SERVER['REMOTE_ADDR']."'";
$user_connection [ 'ip_address_2']="'".$_SERVER['HTTP_X_FORWARDED_FOR']."'";
$user_connection ['device_info']=0;
該錯誤發生在執行SQL代碼的過程中。我已經瀏覽了所有的例子,並沒有發現任何相同的東西,我認爲這是我錯過的簡單東西(一條規則?),因爲代碼在本地執行。
我已經張貼的$ user_connection結構,我可能有它的一個不正確的認識,但我幾乎完全封裝了我的執行命令'數組'或如上:execute(array($ values));值變成逗號分隔的數組值(或者我的經驗)。儘管給我一分鐘,我會嘗試封裝在一個單獨的數組中。 – Chris
好的,這工作,我很困惑爲什麼array()不起作用在這個實例中,它在我的代碼中的其他地方工作。 – Chris
也許在其他地方有點不同..我不能肯定地說不看它(確保值正確地存儲在batabase中) – FirstOne