随着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 "'>";
答案 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
连接数据库文件仍然没问题。