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

时间:2014-04-13 21:00:02

标签: php pdo mysqli

我有这个PDO声明,如何将结果设置为变量以供其他用途。 IE浏览器。我想要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();

1 个答案:

答案 0 :(得分:1)

您必须将语句提取到关联数组(或其他内容),然后使用它。 您的SQL和PHP也有错误,请在下面查看

  1. 在您的SQL中,您不应该在'处使用反引号来围绕列名称
  2. bindParam正如其名称所示,它用于一次绑定1个参数,因此在您的代码中,您必须使用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);
        }
    }
    
  3. 或者您可以使用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/

    SIDE注意:最好使用AND而不是&&作为标准SQL