我遇到了一个让我有点疯狂的问题。我已将一些 csv 数据导入到 phpadmin 数据库中的表中,现在使用带有 mysql_query()
的 php 脚本在数据库上运行简单的选择查询并将结果转换为 json 格式 - 例如从表 29 中选择客户端
。
基本上,表中的某些列在通过 mysql_query()
传递后会生成 json 字符串,而其他列则仅返回空白。我现在已经摆弄了几个小时,但不明白这是为什么。我的代码的最后一部分如下所示:
$myquery = "SELECT `clients` FROM `TABLE 29`";
$query = mysql_query($myquery) or die(mysql_error());
if ( ! $query ) {
echo mysql_error();
die;
}
$data = array();
for ($x = 0; $x < mysql_num_rows($query); $x++) {
$data[] = mysql_fetch_assoc($query);
}
echo json_encode($data);
mysql_close($server);
任何帮助将不胜感激。会不会是表中数据的问题?我很茫然。
谢谢!
更新:clients
列中的字符串长度似乎有影响。当我用更短的内容替换所有文本时(例如 aaa
而不是 公司名称 111 - 045 - 项目名称 - 货币 - 等
),它就可以工作了。但是,我需要它能够处理长字符串,因为我希望它只接受用户碰巧导入的任何内容...我做错了什么?
最佳答案
不,这与表格无关,而是与如何循环它们有关。示例:
$data = array();
while($row = mysql_fetch_assoc($query)) { // While a row of data exists, put that row in $row as an associative array
$data[] = $row;
}
echo json_encode($data);
mysql_close($server);
exit;
注意:mysql 已弃用并且不再维护。使用 mysql 扩展的改进版本 mysqli 或使用 PDO 代替。
关于php - 当 php mysql_query 在 phpmyadmin 中工作时,某些列的空白结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859358/