【发布时间】:2012-05-31 12:58:35
【问题描述】:
我无法让我的 NOT EXISTS mysql 语句工作,这让我现在很生气:
$ancestors = mysql_query('
SELECT * FROM comments e
WHERE
ancestors = "' . $comment["id"] . '" AND
user_id != "' . $user->user_object["id"] . '" AND
NOT EXISTS
(
SELECT null
FROM notifications d
WHERE d.target_id = e.id
)
', $database->connection_handle);
有什么想法吗?
错误:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /<>/<>/functions.php on line 785
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /<>/<>/functions.php on line 785
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /<>/<>/functions.php on line 785
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /<>/<>/functions.php on line 785
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /<>/<>/functions.php on line 785
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /<>/<>/functions.php on line 785
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /<>/<>/functions.php on line 785
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /<>/<>/functions.php on line 785
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /<>/<>/functions.php on line 785
第 785 行:
while($reply = mysql_fetch_array($ancestors, MYSQL_ASSOC)){
如果我这样做:
$ancestors = mysql_query('SELECT * FROM ' . $database->db_prefix . 'comments
WHERE
ancestors = "' . $comment["id"] . '" AND
user_id != "' . $user->user_object["id"] . '"',
$database->connection_handle
);
它返回我期望的结果。
通知表确实包含一个条目
mysql 转储 =
string(46) "Table 'whatever_co.comments' doesn't exist"
//已解决::: ' . $database->db_prefix 。 ' 在我的表格选择器中丢失。
【问题讨论】:
-
它给出了什么错误?
-
通知中的列名是 null 吗?如果是这样,你就有问题了,因为它是reserved word
-
“有什么想法吗?” --- 是的,有一个:修复它
-
@amaidment:不,它只是一个值
NULL。对于嵌套在(NOT) EXISTS中的查询,SELECT NULL很常见 -
能否将
var_dump(mysql_error());放在mysql_query之后并在此处发布其输出?
标签: php mysql select not-exists