在这里感到困惑:我正在查看一堆用 PHP4 编写但在 PHP5 下运行的代码 - 代码(删节)如下所示:
$pid=(int)$customer_exists['pid'];//this value comes from an earlier query & does exist
$query2 = mysql_query("SELECT * FROM `products` AS p, `products_description` AS pd WHERE pd.products_id=p.products_id AND p.products_id='".(int)$pid." '" );
这从数据库中得不到任何结果。 如果第一行改为$pid=28;或者如果查询更改为只搜索一个表,那么我们会得到一个结果。
在查询前后回显$pid 会回显第1行分配的值
(已经尝试了很多版本的实际 $query2 - 都得到了相同的非结果)
我在这里错过了什么?
最佳答案
你能试着改变一下吗
AND p.products_id='".(int)$pid." '"
到
AND p.products_id='".(int)$pid."'"
在双引号之后和单引号之前有一个你不需要的空格。
此外,您不需要在此处使用 (int)
,因为您已经在上一行中完成了。
让我知道它是否有效。
关于php - 无法在查询中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6980734/