php - 无法在查询中使用变量

标签 php mysql variables

在这里感到困惑:我正在查看一堆用 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/

相关文章:

MySQL - 按数字或字母查询?

mysql - SELECT 和 INSERT 语句中 str_to_date 的不同行为

php - Laravel JOIN 如果不为 NULL 则替换

javascript - 用 true 或 false 初始化变量是否确定了 Javascript 中内容的方向?

php -/e 修饰符已弃用,从 php5.2.6 迁移后改用 preg_replace_callback

php - PHP 中是否有可选链接?

c++ - 如何从另一个方法访问静态变量?

variables - 在 sed 命令中使用变量而不是值来替换文本文件中的单词

php - 将 HSL 和/或 RGB 颜色从字符串转换为数组

php - 当从数据库中检索 Eloquent 模型时执行代码