从mysqli更改为PDO不起作用


Changing from mysqli to PDO did not work?

我以前使用mysqli,现在我想改用PDO,但我没有从我的数据库中回显任何结果。我读过很多关于PDO教程的文章,但它们教的东西不同。我试图逐个挑选并想出了这段代码,但我没有从我的数据库中回显任何结果或抛出任何错误。

try{
$stmt = $conn->query("SELECT * FROM memberpost ORDER BY poststart DESC LIMIT       $start_from,$num_rec_per_page");
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$row = $stmt->fetch();
if(count($row)>0){
while($row = $stmt->fetch()) {
echo $row['title']."<br>";
}
}
else{
 echo "NO result found";
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}

这是我的数据库连接代码:

try {
$conn = new PDO('mysql:host=localhost;dbname=mydatabase;charset=utf8', $username, $password); //new PDO 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}

将数据库连接代码编辑为:

<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
    $dbh = new PDO($dsn, $user, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>

并在您的.php文件中尝试以下代码:

$sth = $conn->prepare(SELECT * FROM memberpost)
$sth->execute();
$red = $sth->fetchAll();
print_r($red);

我在互联网上找到了这个,它可能会有所帮助:

// defining query 
$sql = 'SELECT name, surname, zip FROM table';  
// showing results
foreach($db->query($sql) as $row){  
  echo $row['name']. '<br>';    
  echo $row['surname']. '<br>';  
  echo $row['zip']. '<br>';  
}

来源(意大利): http://www.mrwebmaster.it/php/guida-utilizzo-pdo_7594_4.html