脚本中的多个PDO查询

时间:2013-01-05 19:26:53

标签: php mysql pdo

我正在尝试找出在单个脚本中使用PDO运行多个SQL查询的最佳实践。数据库连接是在脚本的开头进行的,但后来我需要进行多个不同的查询。我目前正在做的事情(我不确定是最佳做法)是:

$db = new PDO('mysql:host='.$DBHOST.';dbname='.$DBNAME.';charset=UTF-8', $DBUSER, $DBPASSWORD);

$query = $db->prepare("SELECT count(*) as total from bande_ips WHERE ip=:ip");
$query->bindValue(':ip', $_SESSION['REMOTE_ADDR'], PDO::PARAM_STR);
$query->execute();
$array = $query->fetchAll(PDO::FETCH_ASSOC);

$query = NULL;
$query = $db->prepare("SELECT * from failed_login WHERE IP=:ip and email=:email");
$query->bindValue(':ip', $_SESSION['REMOTE_ADDR'], PDO::PARAM_STR);
$query->bindValue(':email', $email, PDO::PARAM_STR);
$query->execute();
$array = $query->fetchAll(PDO::FETCH_ASSOC);

正如您所看到的,我在一个脚本中准备了两个单独的查询。但是我开始设置$query = NULL;,因为脚本预先混淆了单独的查询(它期待我不再调用的旧查询的参数,这导致我认为这是最佳实践的不确定性。)< / p>

我只想在继续迁移到PDO之前确认这是最佳做法。

1 个答案:

答案 0 :(得分:1)

  

脚本预先混淆了单独的查询(它期待我不再调用的旧查询的参数)

这是您的程序流在其他一些代码中的问题。很可能是在循环中运行。

至于您在此处发布的代码,无需将$query设置为NULL - 无论如何它都会被下一行覆盖。

请注意,mysql的有效字符集是utf8,而不是utf-8