這讓我很沮喪了很多,因爲我搬到PDOPHP呼應查詢的實際語句後的執行
我有這樣的事情:
$sql = "select * FROM $table where id=:id";
$this->stmt = $this->dbh->prepare($query);
$this->stmt->bindValue($param, $value, $type);
bindValue(:id => $this->user_id);
$this->stmt->execute();
現在選擇運行,那並不破壞任何東西,但我沒有得到預期的結果,如果我回聲$這個 - > stmt是我得到的是這樣的:
PDOStatement Object ([queryString] => UPDATE `users`
SET user_active= :user_active, user_activation_hash= :user_activation_hash
WHERE user_id = :user_id AND user_activation_hash = :verification_code)
現在看起來不錯,所以這個問題是最有可能與傳遞的值,所以不是傳遞一個數字我可能已經搞砸了引號,並通過$ id作爲字符串,它沒有評估變量,但我無法想出一個出路,看看實際的語句值是什麼。必須有一個更簡單的方法,這是非常簡單的標準mysql只需將查詢分配給一個變量並回顯出來或使用或死亡mysql_error?
FWIW我想debugDumpParams它只返回此:
UPDATE `users` SET user_active= :user_active, user_activation_hash= :user_activation_hash WHERE user_id = :user_id AND user_activation_hash = :verification_code Params: 4 Key: Name: [12] :user_active paramno=-1 name=[12] ":user_active" is_param=1 param_type=2 Key: Name: [21] :user_activation_hash paramno=-1 name=[21] ":user_activation_hash" is_param=1 param_type=2 Key: Name: [8] :user_id paramno=-1 name=[8] ":user_id" is_param=1 param_type=2 Key: Name: [18] :verification_code paramno=-1 name=[18] ":verification_code" is_param=1 param_type=2
在猜測有沒有類似的調試轉儲值什麼的,它的價值我想調試
我想你的意思是'where id =:id'對嗎? – Mike
正確,編輯 – user1547410
那麼,如果不是預期的結果,你會得到什麼? –