php - 如何在高级查询中使用 PDO 制作准备好的语句?

标签 php mysql pdo

我想寻求有关使用 PDO 技术将我的 mysql_* 查询转换为准备好的语句的帮助。有很多我无法在互联网上找到如何正确解决它们的方法 - 大多数是高级的,例如这个:

mysql_query("SELECT * FROM pet_auction JOIN people ON (pet_auction.pet=people.guid) 
            LEFT OUTER JOIN login.account ON (pet_auction.winner=login.account.id)
            WHERE active=1 AND seller=$userid ORDER BY id DESC");

如何使用这些成功地将其转换为 PDO STMT?:

$people = new PDO("mysql:host=localhost;dbname=people", "myuser", "mypass");
$login = new PDO("mysql:host=localhost;dbname=login", "myuser", "mypass");

谢谢大家,我宁愿不尝试,否则它会是错误的,因为我已经测试过......我不知道如何将 LEFT OUTER JOIN 和多个数据库一起转换。

最佳答案

您不需要为每个数据库打开一个 pdo 对象。只需授予 myuser 登录和人员数据库的访问权限。然后像这样查询:

$dbh = new PDO("mysql:host=localhost;dbname=people", "myuser", "mypass");
$stmt= $dbh->prepare("SELECT * FROM pet_auction JOIN people ON (pet_auction.pet=people.guid) 
        LEFT OUTER JOIN login.account ON (pet_auction.winner=login.account.id)
        WHERE active=1 AND seller=:userid ORDER BY id DESC");
$stmt-> execute(array(':userid' => $userid));
$variable = $stmt->fetch(PDO::FETCH_ASSOC);

关于php - 如何在高级查询中使用 PDO 制作准备好的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934809/

相关文章:

php - 使用 cron 作业每月通过 MySQL SELECT 查询更改 PHP 变量

mysql - 将mysql中一个多条记录的查询结果与另一个多条记录的查询结果分开

mysql - 如何在Windows中使用mysql在docker中运行joomla

php - 使用 PDO 的多个数据库连接

php - 从 PHP 脚本调用 Python 脚本时,在控制台运行时创建的临时文件不是通过 PHP 调用创建的

php - 如何存储出生日期和年龄,以便可以在 PHP/MySQL 中每天更新年龄?

php - 类型提示 - 指定一个对象数组

javascript - 无法将带有ajax调用的c++程序发送到php

php - 从同一个表中选择不同的结果

php - PDO 持久连接的连接太多?