我想寻求有关使用 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/