2013-07-09 3 views
-1

MYSQL 함수가 가치가 떨어지면서 코드를 PDO로 옮기려고했지만 복제 할 수없는 SQL에 익숙해 진 몇 가지 기능이 있습니다 PDO.PDO를 사용하여 MySQL 출력을 주문하는 방법

<?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에서

나는이 이미지 대신 텍스트로 그것을 인쇄 할 방법 created_at

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

표는 사용자가 사진에 대한 링크가 포함 쓰기 것?

다시, MySQL의에 내가 작성합니다

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

을 오히려 사용자 이름과 패스워드를 기억하는 것보다 내가했습니다 항상 별도의 연결 정보를 넣어 파일 포함 - 같은 database_connection.php 등을 -하는 암호로 보호되어 있습니다. PDO에서 가능합니까? MySQL의에서

:

MySQL의 언어가 변경되지 않았습니다
require_once 'includes/database_connection.php' ; 
+2

나는 PHP가있는 혼란스러운 MySQL을 생각한다. –

+0

XSS 알람 : 사용자 데이터를 HTML로 출력 할 때'htmlspecialchars'를 사용하십시오. 그리고 정말로 '스트립 슬래시'가 필요합니까? –

+0

Mysql 함수는 PHP의 일부이며 이후 버전에서는 더 이상 사용되지 않습니다 - http://php.net/manual/en/function.mysql-query.php - 그래서 MySQL 함수에서 벗어나려고 노력하고 있습니다. . – Phil

답변

3

, 데이터베이스에 액세스 얼마나. 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 

그리고 연결 데이터베이스 파일은 여전히 ​​잘 될 것입니다.

+0

감사합니다. 데이터베이스 파일이 실패한 이유를 알지 못하면 데이터베이스 연결 파일보다 먼저 트위터 페이지를 처리하고 연결되지 않았을 때 중지 할 수 있습니다. 다시 시도 할 것입니다. – Phil

관련 문제