-2

このコードは 100% 機能しますが、使用しようとするJSONとデータが表示されません。

問題は、関数が減価償却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>
4

2 に答える 2

1

MySQLDSNではnew PDO(...)UTF-8文字セットが呼び出されるため、入力は間違っていますutf8

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

詳細については、こちらを参照してください:http: //php.net/manual/en/mysqlinfo.concepts.charset.php

また、例外をキャッチする必要があります。そうすれば、PDOは次回何が問題なのかを知ることができます。

try {
    $con = new PDO(...);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
于 2013-01-25T10:21:45.333 に答える
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);
?>
于 2013-01-25T10:28:49.430 に答える