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