【发布时间】:2015-06-18 20:31:51
【问题描述】:
Mysqli 查询包含数据行的表。
当我使用这个SELECT 时,当确实存在具有所需请求的行时,它不会返回任何行。
我已经写了几种我在各种参考资料中看到的方式,但都没有返回任何行。
我希望在(*) 中检索(SELECT) 最新的(DESC)(LIMIT 1) 行(*) 其中(licensePath) 在单元格(IS NOT NULL) 中有一些东西。
问。我想知道我需要在我的选择语句中调整什么以返回所需的结果?
选择:
$query = "SELECT * FROM driver_docs WHERE driver_profileId LIKE '$uid' AND WHERE licensePath IS NOT NULL ORDER BY datetime_upload DESC LIMIT 1";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if ($row) {
if ($row["licensePath"]) {
echo "license";
}
}
else {
echo "NO ROWS";
}
【问题讨论】:
-
将
or die(mysqli_error($conn))添加到mysqli_query()会出现语法错误。 -
LIKE '$uid'传递了什么?您可能想改用WHERE driver_profileId = '$uid'。 LIKE 可能不会返回您要查找的内容。 -
完全删除 WHERE 后是否得到结果?
-
我假设 licensepath 是 text 或 var char,但是 null 和 "" 都是不同的值。试试licenspath != ""
-
好吧,还是试试我说的
WHERE licensePath != "" AND ....,就像说的 2x 可能会给你带来问题,像 phpmyadmin 这样的 dbms 是怎么说的?