1

我无法使此查询正常工作,我有 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"
);

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

4

2 回答 2

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"
);
于 2012-12-13T00:57:17.407 回答
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);
于 2012-12-13T01:00:31.453 回答