我必须将旧的 mysql 更改为 PDO,我正在使用其他人编写的代码,所以我有以下代码要在 PDO 中更改 原代码为
function liste($a,$b,$c)
{
$queryliste= "SELECT id,nom,prenom
FROM table";
$this->list = Connection_Base($querylistactu);
}
//Connection_Base
function Connection_Base($query)
{
$link = mysql_connect(DATABASESERVER, DATABASEUSER, DATABASEPASSWORD);
$ret = mysql_select_db(DATABASEDB, $link);
if (!$ret)
{
die("Echec de connection");
} else {
$mysql_desc = DATABASEDB;
if(!$result = mysql_query( $query))
{
return 0;
} else {
return $result;
}
mysql_close($link);
}
}
这是我遇到问题的部分。我想使用 PDO 更改它。
while( list($x,$y,$z) = mysql_fetch_row($lactu->list) )
我按照这样的方式进行,但它不起作用
while( list($x,$y,$z) = $lactu->list->fetch(PDO::FETCH_NUM)
有什么想法吗?
最佳答案
为什么不使用 PDO::FETCH_ASSOC?检查连接数据库、执行查询、获取所有行以及迭代行的代码示例。
//Your query
$queryliste = "SELECT id, nom, prenom FROM table";
//Initialize pdo connection use your $name, $host, $username and $password
$pdoLink = new PDO("mysql:dbname={$name};host={$host};charset=utf8", $username, $password);
//Prepare statement
$statement = $pdoLink-> prepare($queryliste);
//Execute query
$statement -> execute();
//(1) Fetch rows using PDO::FETCH_ASSOC
$rows = $statement -> fetchAll(PDO::FETCH_ASSOC);
$statement -> closeCursor();
foreach($rows as $row) {
echo $row['id'];
echo $row['nom'];
echo $row['prenom'];
}
//(2) or you can use PDO::FETCH_NUM
$rows = $statement -> fetchAll(PDO::FETCH_NUM);
$statement -> closeCursor();
foreach($rows as list($x, $y, $z)) {
echo $x;
echo $y;
echo $z;
}
//(3) or you can rewrite the last in the same form you are using as
while((list($x, $y, $z) = $statement->fetch(PDO::FETCH_NUM))) {
echo $x;
echo $y;
echo $z;
}
$statement -> closeCursor();
关于mysql - 将 MySQL 更改为 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29767683/