-1

随着 MYSQL 函数的贬值,我一直在尝试将我的代码移动到 PDO,但是我已经习惯了一些我无法在 PDO 中复制的 SQL 功能。这是我打印出包含来自 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 BYcreated_atDESC");

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

同样,在 MySQL 中我会写:

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

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

在 MySQL 中:

require_once 'includes/database_connection.php' ;
4

1 回答 1

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

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

于 2013-07-09T19:46:59.847 回答