2013-01-25 234 views
-2

此代碼可以100%工作,但是當我嘗試使用JSON時,它不顯示任何數據。json不能與pdo一起工作,但可以與mysql_函數一起使用

的問題是,我想改變我的所有代碼PDO,因爲有人告訴我,mysql_*函數的計算折舊。

<?php 
$con = new PDO('mysql:host=localhost;dbname=adnan;charset=UTF-8','root',''); 
$sql= $con->query('select * from adnan_user'); 
while($row =$sql->fetch()){ 
    echo $row['user_id'],"\n"; 
} 
?> 

下面是我在json調用代碼:當我使用mysql_功能 但隨着pdo它不工作了也有效。

<?php 
$con = new PDO('mysql:host=localhost;dbname=adnan;charset=UTF-8','root',''); 
$sql= $con->query('select * from adnan_user'); 
while($row =$sql->fetch()){ 
    $name = $row['name']; 
    $user= $row['user']; 
} 
// The JSON standard MIME header. 
header('Content-type: application/json'); 
$array = array('name'=>$name, 'user'=>$user); 
echo json_encode($array); 
?> 

對JSON的代碼

<html> 
    <head> 
     <script src="http://code.jquery.com/jquery-latest.js"></script> 
     <script> 
     $(document).ready(function(){ 
      $.getJSON('json.php', function(data) { 
       $('#myJson').html('<table style="color:red"><tr><td>' + data.name + '</td><td>' + data.user + '</td></tr></table>'); 
      }); 
     }); 
     </script> 
    </head> 
    <body> 
     <div id="myJson"></div> 
    </body> 
</html> 
+0

你是什麼意思「它不工作」。是否有錯誤消息,它是無效的JSON或沒有發生任何事情? –

+1

當我使用mysql_時,一切都沒有發生,它確實顯示了目標結果 – Musa

+0

@LouisH。不,在PHP循環塊中沒有自己的作用域 –

回答

1

DSNnew PDO(...)是錯誤的,因爲在MySQL的UTF-8字符集被稱爲utf8

$con = new PDO('mysql:host=localhost;dbname=adnan;charset=utf8','root',''); 

在這裏看到更多的信息: http://php.net/manual/en/mysqlinfo.concepts.charset.php

A LSO,你應該捕捉異常,所以PDO可以告訴你,下一次什麼是錯的:

try { 
    $con = new PDO(...); 
} catch (PDOException $e) { 
    echo 'Connection failed: ' . $e->getMessage(); 
} 
1

這是可行的,但在這種情況下,你只能從你的數據庫中的最後一條記錄。爲什麼你的sql有*?如果你需要所有的記錄,你需要改變代碼中的邏輯。

<?php 
    $db = new PDO('mysql:host=localhost;dbname=core', 'root', ''); 
    $db->exec("SET NAMES 'utf8' COLLATE 'utf8_general_ci'"); 
    $sql = "select * from adnan_user"; 
    $result = $db->prepare($sql); 
    $result->execute(); 
    $array = array(); 
    while($row = $result->fetch()){  
    $name = $row['name']; 
    $user = $row['user'];  
    } 
$array['name'] = $user; 
$array['user'] = $name; 
header('Content-type: application/json'); 
echo json_encode($array); 
?> 
相關問題