我在我的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) );
(Line1创建我的图的x轴,line2创建y轴)
这非常适合为我的图形生成字符串。
如何过滤这些内容,以便投票的项目名称(在“项目”列中“)被var过滤(在本例中为$nameofitem
)?我似乎无法让它发挥作用。
答案 0 :(得分:1)
$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绑定。
请注意,我还为您添加了一个订单声明,因为没有保证没有它的结果排序,这意味着您在图表上看到的点可能与错误的点相关联。日期可能不是最佳选择,如果可以,请使用唯一密钥。或者,您可以在单个查询中获取所有内容,并使用后期处理构建列表。