为了学习更多的php、mysql & json,我从:http://www.mysqltutorial.org/wp-content/uploads/downloads/2013/05/mysqlsampledatabase1.zip下载了一个演示数据库。
我想用编辑和删除按钮以html表格格式显示所有客户。
我的SQL语句是
"SELECT * FROM customers" 它不返回结果,也不返回错误。但是,如果我将SQL语句更改为
"SELECT * FROM customers LIMIT 11" 返回122行中的前11行。使用1-11的限制将返回结果,而任何12或更多的返回都会注意到。
有人能帮我弄清楚这件事吗?
更新:协助代码。
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "classicmodels";
$dbh = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password) or die(mysql_error());
$sql = 'SELECT * FROM customers LIMIT 12' or die(mysql_error());
$stmt = $dbh->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
die();
?>
提前谢谢你,
Bg
发布于 2015-01-29 19:13:56
问题不在SQL代码中。如果
SELECT * FROM customers LIMIT 11
工作正常,所以
SELECT * FROM customers LIMIT 12
因此,您的php代码可能有错误。它要么无法正确处理检索到的第12条记录,要么由于其他原因无法处理12+限制。你能用相关的php代码来扩展这个问题吗?
编辑
若要正确显示特殊字符,如“Lule”(您的第12条记录),必须匹配数据库设置、数据库连接和输出中的字符集。
例如,如果数据库排序规则为UTF-8,则在脚本SET NAMES 'utf8'中进行第一个查询。然后,在打印json之前,向浏览器发送一个头(我假设您要输出到浏览器):header('Content-Type: text/json; charset=utf-8');
通过正确配置数据库,集合名称就会过时。
我发现一些有用的指南更详细地解释了这一点:
发布于 2015-01-29 19:05:05
由于要从表中选择所有内容,因此可能需要将语法更改为:
从客户中选择*(而不是@)
极限x
其中x是你的数字,这应该允许超过12的数字。
https://stackoverflow.com/questions/28222406
复制相似问题