2012-12-13 58 views
1

我无法使这个查询工作,我有2个客户端信息一个表,另一个与产品信息。试图在查询数据库时加入它们。空的mysql_query,无法弄清楚

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" 
); 

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

回答

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" 
); 
+0

+1我写了相同的答案,但你先到这里! :-)我很难看到OP的代码如何工作。 –

+0

是的......它应该至少返回一些PHP错误..! – Veger

+0

如果client.id是数字,那么单引号也可以使用。 – hansvedo

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); 
+0

对不起,但这也没有解决问题。 –

+0

未解决问题,但显示了特定的错误? – hansvedo