0
我到目前爲止的代碼已經返回了我需要的代碼。我看不出這裏出了什麼問題。 對代碼進行「糟糕的」調整後,它會提供正確的輸出,但我認爲更好地正確執行。 爲什麼它不起作用?PHP:使用bindValue的PDO(mysql)返回錯誤的結果
錯誤輸出:陣列([L] => L)
右輸出:陣列([L] => 9)
此代碼給出錯誤的輸出:
public function getStockByID_SIZE($size, $stockId){
try {
$this->_dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sth=$this->_dbh->prepare("SELECT :size from stock WHERE id_product = :stockId");
$sth->bindValue(':size', $size, PDO::PARAM_STR);
$sth->bindValue(":stockId", $stockId);
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
return $result;
} catch (PDOException $e) {
return "Error";
}
}
相同的代碼,但用(壞)調整返回正確的代碼:
$sth=$this->_dbh->prepare("SELECT $size from stock WHERE id_product = :stockId");
//比較:
$sth=$this->_dbh->prepare("SELECT :size from stock WHERE id_product = :stockId");
$sth->bindValue(':size', $size); //use of PDO::PARAM_STR doenst matter for outcome
之後,但大號變化,我可以用$大小,但是,好不好?我會調整您的代碼 – Rob
$ size is validates ... – Rob
@Rob您是指$ size有效嗎? – xdazz