我无法使此查询生效,我有2个表,其中一个包含客户端信息,另一个包含产品信息。在查询数据库时尝试加入它们。
mysql_query(
"SELECT client.id, client.email, client.prodid, prod.id, prod.name
FROM client, prod
WHERE client.id ="'.mysql_real_escape_string($_GET["id"]).'"
AND client.prodid =prod.id"
);
但该查询并未返回任何内容。我究竟做错了什么?提前谢谢。
答案 0 :(得分:3)
你的报价错了。
您使用“在您的方法中启动字符串。在中间您使用"'.mysql_real_escape_string($_GET["id"]).'"
。请注意,您使用的是"'
而不是'"
。
这应该更好(从PHP的角度来看,我没有检查你的SQL语法):
mysql_query(
"SELECT client.id, client.email, client.prodid, prod.id, prod.name
FROM client, prod
WHERE client.id ='".mysql_real_escape_string($_GET["id"])."'
AND client.prodid =prod.id"
);
答案 1 :(得分:1)
您的报价似乎正在取消动态ID变量。如果你的client.id字段是数字,那么你应该删除mysql_real_escape_string()周围的单引号:
mysql_query(
"SELECT client.id, client.email, client.prodid, prod.id, prod.name
FROM client, prod
WHERE client.id = ".mysql_real_escape_string($_GET["id"])." AND client.prodid = prod.id"
);
如果它在PHPMyAdmin中有效,那么查询就可以了。启用调试并使用var_dump():
ini_set('display_errors','on');
error_reporting(E_ALL);
$result = mysql_query($sql_query);
var_dump($result);