当我像这样对我的查询进行硬编码时,查询会返回正确的结果:
$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字段。
答案 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());