如何在高级查询中使用PDO进行准备语句?

我想请求帮助将我的mysql_ *查询转换为使用PDO技术的准备语句。 其中有很多我在互联网上无法找到的如何正确解决它们 - 大多数是先进的,例如:

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);

$dbh = new PDO($dsn, "myuser", "mypass");
$select = $dbh->prepare("SELECT * FROM `table`");
$select -> execute();
$variable = $select->fetch(PDO::FETCH_ASSOC);

$ dsn是一个包含'mysql:dbname = racerost_reekris_db; host = localhost'的字符串,

该查询可以包含任何包括连接的mySQL查询。

链接地址: http://www.djcxy.com/p/93787.html

上一篇: How to make prepared statement using PDO in advanced queries?

下一篇: mySQL private/conn issues