-1

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

3 つの質問:

このコードは、最初に格納された最初のツイートを出力します。最後のツイートが最初になるように注文するにはどうすればよいですか?

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 に答える