MySQL查询无法使用PHP变量

时间:2013-03-06 05:46:21

标签: php mysql

当我像这样对我的查询进行硬编码时,查询会返回正确的结果:

$data = mysql_query("SELECT * FROM $table_name WHERE post_ID = '1'") or
              die(mysql_error());

但是当我使用这样的php变量时,查询不会返回任何结果:

 $data = mysql_query("SELECT * FROM $table_name WHERE post_ID = '$ID'") or
              die(mysql_error());

我已将上面的变量初始化如下:

$ID = $_POST[ID];

这个变量每次都有这个陈述:

$sql = "INSERT INTO $table_name (post_ID, user_name, comments)
    VALUES ('$ID','$name', '$comment')";

所以我不明白为什么变量会使用前面的语句正确插入到我的sql表中,但不能使用查询。我在sql表中使用varchar数据类型作为post_ID字段。

6 个答案:

答案 0 :(得分:1)

这是代码的一些问题。因为你的PHP变量不适用于MySQL查询。所以你必须将变量传递给它。使用单个报价,您可以像这样传递它。并且

$ data = mysql_query(“SELECT * FROM'$ table_name'WHERE post_ID ='1'”)或               死亡(mysql_error());

由于

答案 1 :(得分:0)

试试这个

$ID = $_POST['ID'];
$data = mysql_query("SELECT * FROM ".$table_name." WHERE post_ID = '".$ID."'") or
        die(mysql_error());

答案 2 :(得分:0)

你可以直接尝试而不是引用

 $data = mysql_query("SELECT * FROM $table_name WHERE post_ID =$ID") or
              die(mysql_error());

答案 3 :(得分:0)

如果将变量放在''中,则Php解析器不会解析变量。因此,请尝试删除单引号,即仅使用$ ID而不是'$ ID'

$data = mysql_query("SELECT * FROM $table_name WHERE post_ID = $ID") or die(mysql_error());

答案 4 :(得分:0)

尝试使用此

<?php
$query = "SELECT * FROM $table_name WHERE post_ID = "$ID;
$data = mysql_query($query);
?>

虽然,你必须使用mysqli而不是mysql函数。

快乐的编码!

答案 5 :(得分:0)

确保首先设置$_POST['ID']

$ID = isset($_POST['ID']) ? $_POST['ID'] : <some_values>; #for debugging purpose

然后,做:

$data = mysql_query("SELECT * FROM $table_name WHERE post_ID = '".$ID."'") or
        die(mysql_error());