Php json不适用于pdo,但它适用于mysql_u函数
这段代码100%有效,但当我尝试使用Php json不适用于pdo,但它适用于mysql_u函数,php,jquery,mysql,Php,Jquery,Mysql,这段代码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
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的代码
<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>
$(文档).ready(函数(){
$.getJSON('json.php',函数(数据){
$('#myJson').html(''+data.name+''+data.user+'');
});
});
您在新PDO(…)
中的DSN
是错误的,因为在MySQL中,UTF-8字符集被称为utf8
:
$con = new PDO('mysql:host=localhost;dbname=adnan;charset=utf8','root','');
有关更多信息,请参见此处:
您还应该捕获异常,以便PDO下次可以告诉您出了什么问题:
try {
$con = new PDO(...);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
这将起作用,但在这种情况下,您只能从数据库中获取最后一条记录。为什么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);
?>
你说“它不工作”是什么意思。是否有错误消息,是无效的json还是什么都没有发生?当我使用mysql时,什么都没有发生?它确实显示了目标results@LouisH. 不,PHP循环块没有自己的作用域目标结果是什么?@fab-当然,你是对的。我有时会有点困惑。
<?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);
?>