繁体   English   中英

筛选PDO SQL查询

[英]Filtering PDO SQL Queries

我在PHP页面中使用PDO方法内插两个字符串(以创建图形...长话说!),但是我不知道如何过滤它们。 MySQL中的表结构如下:

列名称: 项目 (正在投票的项目的名称); nvote (该项目已获得的投票数); 日期 (投票日期)

这是我到目前为止的内容:

$stmt1 = $db->prepare("SELECT date FROM vote"); 
$stmt1->execute();

$stmt2 = $db->prepare("SELECT nvote FROM vote"); 
$stmt2->execute();

$line1 = implode( ',', $stmt1->fetchAll (PDO::FETCH_COLUMN) ); 
$line2 = implode( ',', $stmt2->fetchAll (PDO::FETCH_COLUMN) );

(第1行创建图形的x轴,第2行创建y轴)

很好地为我的图形生成字符串。

我该如何过滤这些内容,以使投票的项目名称(在“ 项目 ”列中)被var(在本例中$nameofitem )过滤?我似乎无法使其正常工作。

$params = array(':value' => 'Hello World');
$stmt1 = $db->prepare("SELECT date FROM vote WHERE item = :value ORDER BY date"); 
$stmt1->execute($params);

$stmt2 = $db->prepare("SELECT nvote FROM vote WHERE item = :value ORDER BY date"); 
$stmt2->execute($params);

$line1 = implode( ',', $stmt1->fetchAll (PDO::FETCH_COLUMN) ); 
$line2 = implode( ',', $stmt2->fetchAll (PDO::FETCH_COLUMN) );

关键是在SQL查询中添加WHERE条件,该条件的参数在传递数组时由execute绑定。

请注意,我还为您添加了一条订单声明,因为没有订单声明就无法保证结果的顺序,这意味着您在图形上看到的点可能与错误的点相关联。 日期可能不是最佳选择,请尽可能使用唯一键。 或者,您可以在单个查询中获取所有内容,并通过后期处理构建列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM