我有这个PDO语句,我如何将结果设置为变量以备下次使用。我想要PName、Player_price和Player_Points作为PHP变量。有人请帮帮我。
if ($stmt = $con->prepare("SELECT PName, Player_price, Player_points, Total_points FROM Keepers_points WHERE 'WeekNo'=? && 'PlayerNO'=?"))
{
$stmt->bind_param("dd", $Week_ID, $GK_2 );
$stmt->execute();
您必须将语句提取到关联数组(或其他数组)中,然后使用它。您的SQL和php中也有错误,请检查下面的
- 在SQL中,列名不应在使用反引号的位置用
'
括起来` -
顾名思义,
bindParam
用于一次绑定一个参数,因此在代码中,您必须使用2行bindParam
,每个参数一行,或者使用要传递到准备好的语句的变量创建一个数组,并将该数组传递到execute
,就像我在代码中所做的那样。if ($stmt = $con->prepare("SELECT PName, Player_price, Player_points, Total_points FROM Keepers_points WHERE `WeekNo`=? AND `PlayerNO`=?")) { $data=array($Week_ID, $GK_2); $stmt->execute($data); $stmt->setFetchMode(PDO::FETCH_ASSOC); while($array=$stmt->fetch()){ print_r($array); } }
或者,您可以使用fetchAll()
将所有结果放入阵列中
if ($stmt = $con->prepare("SELECT PName, Player_price, Player_points, Total_points FROM Keepers_points WHERE `WeekNo`=? AND `PlayerNO`=?"))
{
$data=array($Week_ID, $GK_2);
$stmt->execute($data);
$array=$stmt->fetchAll();
print_r($array);
}
查看手册了解更多选项:http://www.php.net/manual/en/
旁注:最好使用AND
而不是&&
,因为这是标准的SQL