我正在尝试打印一些主题信息,但进展并不顺利。这是我的查询:
SELECT * FROM topics WHERE id='$read'
这行不通。我已经回显了$read
变量,它说1
。那么,如果我这样做:
SELECT * FROM topics WHERE id='1'
它完美地工作。我不明白有什么问题。里面没有隐藏角色$read
或其他类似的东西。
Try like this:
$query = "SELECT * FROM topics WHERE id='" . $read . "'"
SELECT * FROM topics WHERE id=$read
it consider it as string if you put i single quotes
ID
通常是一个数字字段,它应该是
$id = 1;
$query = "SELECT * FROM topics1 WHERE id = {id}"
如果您strings
出于某种原因使用,请触发类似的查询
$id = '1';
$query = "SELECT * FROM topics1 WHERE id = '{$id}'"
我想知道为什么所有参与者都没有阅读清楚地说明带有引号的查询的问题
SELECT * FROM topics WHERE id='1'
工作正常。
至于问题本身,可能是一些错字。可能在其他一些代码中,没有直接连接到 $read 变量
看起来您可能在查询生成方面遇到问题,正如其他人所指出的那样。正如 Akash 所指出的,最好先将查询构建到字符串中,然后将该字符串提供给 MySQL API。这使您可以轻松访问方便的调试技术。如果您仍然遇到问题,请尝试此操作。
$id = 1;
$query = "SELECT * FROM `topics1` WHERE `id`={$id}";
echo ": Attempting Query -> {$query}<br />";
$res = mysql_query($query, $dblink);
if($res <= 0)
die("The query failed!<br />" . mysql_error($dblink) . "<br />");
$cnt = mysql_num_rows($res);
if($cnt <= 0)
{
$query = "SELECT `id` FROM `topics1`";
echo "No records where found? Make sure this id exists...<br />{$query}<br /><br />";
$res = mysql_query($query, $dblink);
if($res <= 0)
die("The id listing query failed!<br />" . mysql_error($dblink) . "<br />");
while($row = mysql_fetch_assoc($res))
echo "ID: " . $row['id'] . "<br />";
}
这至少可以让您在调用之间进行监控,查看您的查询实际上是什么样子,mysql 对此有何评论,如果所有其他方法都失败,请确保您正在寻找的 ID 确实存在。
尝试
$query = sprintf("SELECT * FROM topics WHERE id='%s';",$read);
如果需要,还记得转义变量。
try with this : SELECT * FROM topics WHERE id=$read