MySQL & PDO:关于效率
Posted
技术标签:
【中文标题】MySQL & PDO:关于效率【英文标题】:MySQL & PDO : about efficiency 【发布时间】:2012-04-12 23:21:57 【问题描述】:我有以下代码:
<?php
try
# mysql with PDO_MYSQL
$DBH = new PDO("mysql:host=*****;dbname=****", "****", "*****");
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
# statement handle (prevents injection)
$STH = $DBH->prepare("SELECT Adresse FROM Agences");
$STH->execute();
# statement handle (prevents injection)
$STHNAMES = $DBH->prepare("SELECT `numero-agence` FROM Agences");
$STHNAMES->execute();
$storeArray = Array();
$nameArray = Array();
while ($row = $STH->fetch())
$storeArray[] = $row['Adresse'];
while ($row = $STHNAMES->fetch())
$nameArray[] = $row['numero-agence'];
echo json_encode(
Array("theAddress" => $storeArray,
"theName" => $nameArray)
);
catch(PDOException $e)
echo 'There was an issue inserting thing into database: '.$e->getMessage();
?>
我的问题是:有没有办法将这两个查询结合起来,并且仍然有一个关联数组以 JSON 编码发送回客户端? (我正在使用 ajax 调用查询这部分 PHP,并且需要结果数据)
谢谢。
【问题讨论】:
【参考方案1】:可以在同一个查询中完成:
# statement handle (prevents injection)
$STH = $DBH->prepare("SELECT Adresse, `numero-agence` FROM Agences");
$STH->execute();
$storeArray = Array();
$nameArray = Array();
while ($row = $STH->fetch())
$storeArray[] = $row['Adresse'];
$nameArray[] = $row['numero-agence'];
【讨论】:
以上是关于MySQL & PDO:关于效率的主要内容,如果未能解决你的问题,请参考以下文章
php中使用mysqli和pdo扩展,测试mysql数据库的执行效率。