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

Php 将PDO语句结果设置为每个字段的变量,php,pdo,mysqli,Php,Pdo,Mysqli,我有这个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->bi

我有这个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
    顾名思义,它用于一次绑定一个参数,因此在代码中必须使用两行
    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);
    }
    
    查看手册了解更多选项:

    旁注:最好使用
    而不是
    &&
    ,因为这是标准SQL