PHP 不解析双引号内的变量

标签 php mysql parsing

我有以下查询:

var_dump($id); // string '51' (length=2)


$sql    = "SELECT * FROM table WHERE id=$id";

$result = mysql_query($sql, $db);

$myrow  = mysql_fetch_array($result);

var_dump($myrow) // null (NOT OK)

当我更改硬编码值 (51) 的 $id 时,它起作用了:

$sql    = "SELECT * FROM table WHERE id=51";

$result = mysql_query($sql, $db);

$myrow  = mysql_fetch_array($result);

var_dump($myrow); // array 0 => string '51' (length=2) (OK)

好像 $sql 没有被正确解析。这是一个非常古老的站点,是否与该站点最初创建时所针对的 PHP 版本有关?

$sql = "SELECT * FROM table WHERE id=".$id; 
// ALSO WORKS. But I am not really looking forward to doing a FIND & REPLACE

编辑:

该站点有数百种此类查询。这是我别人开发的旧站点。我想知道是否有 INI 设置或在我可以切换回来的 PHP 版本之间切换的东西。

谢谢

PHP版本:PHP5.2

该站点是为版本 4.something 构建的。

最佳答案

而不是像这样写查询

$sql = "SELECT * FROM table WHERE id=$id";

你也可以使用这个替代方案..

$sql = "SELECT * FROM table WHERE id='".$id."'";

关于PHP 不解析双引号内的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9159488/

相关文章:

Mysql 在 python 中显示类型错误

c - 将 char* 解析为标记时出现段错误

java - 使用斯坦福解析器给出的解析分数检查句子的语法

php - 通过键数组创建嵌套数组

php - SQL查询使值单调?

javascript - 有2套相互影响的菜单好吗?

python - 查询产生不正确的结果

php - Laravel 5 用不同的值更新多行

parsing - 制作语法 LL

php - 如何在 cakephp 中重定向到外部 url