到目前为止,我所获得的代码将返回我需要的代码。我看不出这里出了什么问题。 对代码进行“坏”调整后,它会提供正确的输出,但我认为更好地正确执行。 为什么它不起作用?
输出错误:数组([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
答案 0 :(得分:2)
$sth=$this->_dbh->prepare("SELECT L from stock WHERE id_product = :stockId");
是正确的方式。
您的方法就是SELECT 'L' from stock WHERE id_product = :stockId
,它会为您提供结果'L'
。
验证$size
,
$sth=$this->_dbh->prepare("SELECT $size from stock WHERE id_product = :stockId");