如何使用PDO订购MySQL输出


How to order MySQL output using PDO

随着MYSQL函数的贬值,我一直试图将代码转移到PDO,但我已经习惯了SQL的一些功能,这些功能无法在PDO中复制。这是我打印出一个包含推特信息的表格的代码:

<?php $date = date('H:i:s', time()); ?>
<h3>Twitter Feed @ <?php echo "$date"; ?></h3>
<?php
/*** mysql hostname ***/
$hostname = 'localhost';
/*** mysql username ***/
$username = 'MySQL_USER';
/*** mysql password ***/
$password = 'SECRET';
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=DB_NAME", $username, $password);
    /*** echo a message saying we have connected ***/
    echo 'Printing Tweets<br />';
    /*** The SQL SELECT statement ***/
$sql = "SELECT * FROM tweets";
foreach ($dbh->query($sql) as $row)
       {
        print $row['created_at'] .' <br /> '. $row['tweet_text'] .' <br /> '.     $row['screen_name'] . ' <br /> '. $row['name'] .' <br /> '. '<br /><br />';
    }
/*** close the database connection ***/
$dbh = null;
}
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
 ?>

三个问题:

此代码首先输出存储的第一个Tweet。我该怎么点,最后一条推文才是第一条

在MYSQL中,我会编写

$result = mysql_query("SELECT * FROM tweets ORDER BYDESC"); 创建

该表包含指向用户图片的链接,如何将其打印为图像而非文本

同样,在MySQL中,我会写:

    echo "<img src='";
echo stripslashes($row[9]);
echo "'>";

我不必记住密码和用户名,而是总是将连接详细信息放在一个单独的包含文件中,例如database_connection.php,该文件受密码保护。这在PDO中可能吗

在MySQL中:

require_once 'includes/database_connection.php' ;

mysql语言没有改变,只是访问数据库的方式没有改变。ORDERBY语句仍将按原样工作。通过更改此行:

foreach ($dbh->query($sql) as $row)

对此:

foreach ($dbh->query($sql,PDO::FETCH_ASSOC) as $row)

您可以按列名访问每一列,就像以前一样。

你的图片链接只会改变你访问该栏的方式:

echo stripslashes($row['image']); // Or whatever the column name is

连接数据库文件仍然可以。