我的查询如下
SELECT s.`uid` FROM `sessions` s
(这是一个带有LEFT JOIN的扩展查询,但要调试我删除了该连接)
仅供参考,完整的查询是
SELECT s.`uid`, u.`username`, u.`email` FROM `sessions` s LEFT JOIN `users` u ON s.`uid`=u.`user_id`
会话表中有三个结果,为了方便起见,我只是列出了这个uid
| UID |
| 0 |
| 0 |
| 1 |
当我执行上述查询时,我希望收到所有3行。在phpMyAdmin中,我这样做。在PHP中,我没有,我只接收0为UID的行。但是,在PHP中。 $ result-> num_rows是2,而不是3.这是我的PHP代码:
$sql = "SELECT s.`uid` FROM `sessions` s";
$result = $acpDB->query($sql);
$staffList = array();
if ($result->num_rows > 0) {
while ($data = $result->fetch_assoc()) {
var_dump($data);
$staffList[] = array(
'username' => $data['username'],
'email' => $data['email'],
);
}
}
我已经尝试了普通的 - >查询($ sql),以及准备/执行方法,似乎都不起作用。
我能想到的唯一冲突是,我已经从会话类中提取了那一行,但是我怎样才能让它返回所有行,甚至是已经从另一个类中从该表中提取的行? / p>
非常感谢任何帮助
丹
答案 0 :(得分:0)
PHP和phpmyadmin获取数据的方式没有区别 严格来说,phpmyadmin只包含相同的PHP代码。
因此,代码中没有任何内容可供查找。问题显然在数据结构/连接/你忽略的任何其他内容中。
另一个常见原因是您要连接的不同数据库。
答案 1 :(得分:0)
我有一个session_regenerate_id(true);在我的会话类中,这导致它删除了足够长的时间,而另一个查询没有找到结果。添加强制读取并强制写入会话修复此问题。