在PDO中输出选择查询

时间:2015-08-31 17:26:55

标签: php mysql pdo

我习惯使用BindParam(),因为这是SELECT query Param并不相关。基本上我正在尝试建立一个检查数据库的通知系统,如果任何行的状态为'0',那么它将输出所有行信息。

我有以下列:id, api, request, apikey, apiemail, keyauth, ip, dateandtime, status

我如何让PDO将所有信息从status='0'的所有行中收集起来,并将它们放入可用的变量中,如:$id, $api, $request?当然,status='0'可能有多行,所以可能有变量数组和输出,如$id[0], $id[1] e.t.c。

PDO:

<?php

include('/cdn/global/db.php');

$opt = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION );
$dsn = "mysql:host=$host;dbname=$dbname";

$DBH = new PDO($dsn, $username, $password, $opt);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$DBH->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$STH = $DBH->prepare("SELECT id, api, request, apikey, apiemail, keyauth, ip, dateandtime, status FROM apirequests WHERE status = 0");

$STH->execute();

echo "<p>The link is now in Queue, An admin will check the link soon!</p>";


# close the connection  
$DBH = null;

######

?>

3 个答案:

答案 0 :(得分:1)

您可以将它们作为对象获取(如果您希望以特定顺序显示结果,也可以按字段排序):

{{1}}

答案 1 :(得分:0)

  

将它们放入可用的变量中,例如:$ id,$ api,$ request e.t.c

没有必要这样做。 $row['id']同样可用,但更灵活。虽然您可以使用extract()函数将数组成员分配给相应的变量。

  

当然可能有多行,其中status ='0',所以可能有变量数组和输出,如$ id [0],$ id [1] e.t.c

这样做会更没意义,没有人这样做。无论如何,PDO不会为您制作此类变量。相反,必须使用行数组,如其他答案中所示。

答案 2 :(得分:-1)

$value = 0;     
$STH = $DBH->prepare("SELECT id, api, request, apikey, apiemail, keyauth, ip, dateandtime, status FROM apirequests WHERE status = ?");
$STH->execute(array($value));
 $variable[] = $STH->fetchAll(PDO::FETCH_ASSOC);