如何使用PDO订购MySQL输出

时间:2013-07-09 19:38:24

标签: php mysql database pdo

随着MYSQL函数被弃用,我一直在尝试将我的代码移到PDO,但是我已经习惯了SQL的一些功能,我无法在PDO中复制。 这是我打印出包含Twitter信息的表格的代码:

<?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();
    }
 ?>

三个问题:

此代码输出第一个存储的推文。如何订购,以便最后一条推文是第一个?

在MYSQL中我会写

$result = mysql_query("SELECT * FROM tweets ORDER BY {created_at {1}}

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

再次,在MySQL中我会写:

DESC");

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

在MySQL中:

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

1 个答案:

答案 0 :(得分:3)

mysql语言没有改变,只是你如何访问数据库。 ORDER BY语句仍然可以正常工作。通过更改此行:

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

连接数据库文件仍然没问题。