空mysql_query,无法搞清楚

时间:2012-12-13 00:54:15

标签: mysql sql database join

我无法使此查询生效,我有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"
);

但该查询并未返回任何内容。我究竟做错了什么?提前谢谢。

2 个答案:

答案 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);