2013-01-25 128 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); 
?> 
相关问题