0

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

$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 表中为 post_ID 字段使用 varchar 数据类型。

4

6 回答 6

1

这是代码的一些问题。由于您的 PHP 变量在 MySQL 查询中不起作用。所以你必须将变量传递给它。使用单个报价,您可以像这样传递它。和

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

谢谢

于 2014-02-11T06:04:24.113 回答
0

如果你把它放在''中,php解析器不会解析一个变量。因此,请尝试删除单引号,即仅使用 $ID 而不是 '$ID'

$data = mysql_query("SELECT * FROM $table_name WHERE post_ID = $ID") or die(mysql_error());
于 2013-03-06T06:02:31.917 回答
0

尝试使用这个

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

但是,您必须使用 mysqli 而不是 mysql 函数。

快乐编码!

于 2013-03-06T06:10:40.447 回答
0

Try this

$ID = $_POST['ID'];
$data = mysql_query("SELECT * FROM ".$table_name." WHERE post_ID = '".$ID."'") or
        die(mysql_error());
于 2013-03-06T06:00:02.930 回答
0

你能直接试试而不是引号吗

 $data = mysql_query("SELECT * FROM $table_name WHERE post_ID =$ID") or
              die(mysql_error());
于 2013-03-06T06:01:10.620 回答
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());
于 2013-03-06T06:38:43.253 回答