将PDO语句结果设置为每个字段的变量


Set PDO Statement results to variable per field

我有这个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中也有错误,请检查下面的

  1. 在SQL中,列名不应在使用反引号的位置用'括起来`
  2. 顾名思义,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