0

可能重复:
如何使用已弃用的 mysql_* 函数成功重写旧的 mysql-php 代码?

我一直在这个网站上发布一些问题,每当我可以发布时,至少会有一个人出来要求我停止使用 mysql_ 功能,因为它不再受支持,我不知道我被告知要使用 PDO:我一直试图弄清楚它是如何工作的,以便我将所有代码都转换为它,但现在将它应用到代码中,尽管连接部分确实有效,但它似乎无法正常工作。这是我尝试过的,它适用于 mysql_ 函数,但不适用于 PDO:任何帮助将不胜感激。

<?php 
#database connection 
$con = new PDO('mysql:host=localhost;dbname=adnan;charset=UTF-8','root','');

$sql = $con->query("SELECT * FROM 
m1debtors INNER JOIN 
m1dtrans 
ON m1debtors.name = m1dtrans.user");

while ($row=$sql->fetchAll(PDO::FETCH_ASSOC)){
    $ name =  $row[' name '];
    $ user = $row[' user ']; 
}

// The JSON standard MIME header.
header('Content-type: application/json');
$array = array('name'=>$name, 'user'=>$user);
echo  json_encode($array);
?>
4

2 回答 2

1

将您的代码转换为 PDO 是一项非常简单的任务。
您真正需要的只是阅读手册页上的示例(并理解它们)。

由于您只需要关联数组形式的一行,fetch()因此已经可以做到这一点。

$row=$sql->fetch(PDO::FETCH_ASSOC);
// The JSON standard MIME header.
header('Content-type: application/json');
echo  json_encode($row);
于 2013-01-24T08:51:16.470 回答
-3

我建议编写一个类,这将使使用 PDO 更容易。

然后你可以做这样的事情......

$database->query('SELECT id FROM users WHERE name = :name');

$database->bind(':name', 'Jenny');

$row = $database->single();

查看本教程以编写您自己的课程。

http://culttt.com/2012/10/01/roll-your-own-pdo-php-class/

于 2013-01-24T09:01:35.327 回答