php - 如果没有 WHERE 子句,MySQL json_encode 无法读取查询
问题描述
将以下查询的结果编码到数据表时遇到问题。
SELECT e.*, d.dept_name, CONCAT(e.first_name,' ',SUBSTRING(e.middle_name, 1, 1),'. ', e.last_name,' ',e.name_suffix) AS 'name'
FROM `employees` e
JOIN department d on e.dept_id = d.dept_id
上面的查询在 MySQL 本身上运行时有效,但它在数据表中输出Invalid JSON Response
。但是,当我使用子句运行上述代码时WHERE
,它的输出没有问题。
SELECT e.*, d.dept_name, CONCAT(e.first_name,' ',SUBSTRING(e.middle_name, 1, 1),'. ', e.last_name,' ',e.name_suffix) AS 'name'
FROM `employees` e
LEFT JOIN department d on e.dept_id = d.dept_id
WHERE employee_id = '181'
我正在使用 MySQLi。这里可能是什么问题?
编辑:这是我的表employees
和department
架构。
编辑:这是我的retrieve.php
脚本。
<?php
require_once 'db_connect.php';
$output = array('data' => array());
$sql = "SELECT e.*, d.dept_name, CONCAT(e.first_name,' ',SUBSTRING(e.middle_name, 1, 1),'. ', e.last_name,' ',e.name_suffix) AS 'name'
FROM `employees` e
LEFT JOIN department d on e.dept_id = d.dept_id
WHERE employee_id = '181'";
$query = $connect->query($sql);
$x = 1;
while ($row = $query->fetch_assoc()) {
$actionButton = '
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Action <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a type="button" data-toggle="modal" data-target="#editEmployeeModal" onclick="editEmployee('.$row['employee_id'].')"> <span class="glyphicon glyphicon-edit"></span> Edit</a></li>
<li><a type="button" data-toggle="modal" data-target="#removeEmployeeModal" onclick="removeEmployee('.$row['employee_id'].')"> <span class="glyphicon glyphicon-trash"></span> Remove</a></li>
</ul>
</div>
';
//$mid = substr($row['middle_name'],0,1);
//$name = $row['first_name'].' '.$mid.'. '.$row['last_name'];
$output['data'][] = array(
$row['employee_id'],
$row['name'],
$row['dept_name'],
$row['position'],
$row['position_level'],
$row['employment_status'],
$actionButton
);
//$x++;
}
// database connection close
$connect->close();
echo json_encode($output);
编辑:进一步调查,根据 Firefox 调试器,没有可用于请求的数据响应,这很奇怪,因为我的表不是空的并且查询在 PHPMYADMIN 上正确运行。
解决方案
推荐阅读
- java - 图集上的 Heroku Spring boot + Mongo DB
- java - Groovy:如何模拟导入的类及其方法
- javascript - 为什么我在 css 中对我的背景图像做出反应时出错
- excel - 如何使用带有溢出的getElementsByTagName获取特定值:在VBA上隐藏?
- json - 正则表达式用 _ 替换引用字符串中的空格(崇高)
- node.js - 适用于 QnA Bot 的 Azure DevOps 管道
- python - Python Reaction Response 中的 Discord Bot
- python - 如果字典中存在部分查询,则添加 +1
- git - 我的 GitHub 操作只是挂在没有日志的启动状态,这是怎么回事?
- go - googleapi:错误 403:请求的身份验证范围不足。更多细节:原因:权限不足,消息:权限不足