Php mysql查询使用纯文本,但不使用变量
我正试图打印一些主题信息,但进展不太顺利。这是我的疑问:Php mysql查询使用纯文本,但不使用变量,php,mysql,Php,Mysql,我正试图打印一些主题信息,但进展不太顺利。这是我的疑问: SELECT * FROM topics WHERE id='$read' 这不管用。我回显了$read变量,它表示1。那么如果我真的喜欢这个: SELECT * FROM topics WHERE id='1' 它工作得很好。我不明白是什么问题。$read或其他类似内容中没有隐藏字符。ID通常是一个数字字段,应该是 $id = 1; $query = "SELECT * FROM topics1 WHERE id = {id}"
SELECT * FROM topics WHERE id='$read'
这不管用。我回显了$read
变量,它表示1
。那么如果我真的喜欢这个:
SELECT * FROM topics WHERE id='1'
它工作得很好。我不明白是什么问题。
$read
或其他类似内容中没有隐藏字符。ID
通常是一个数字字段,应该是
$id = 1;
$query = "SELECT * FROM topics1 WHERE id = {id}"
如果出于某种原因正在使用字符串
,则触发如下查询
$id = '1';
$query = "SELECT * FROM topics1 WHERE id = '{$id}'"
它把它当作字符串,如果你把我的单引号
像这样试试:$query = "SELECT * FROM topics WHERE id='" . $read . "'"
试着这样做:从id=$read的主题中选择*我想知道为什么所有的参与者都没有读清楚带引号的问题
SELECT * FROM topics WHERE id='1'
很好用
至于问题本身,可能是打字错误。可能在其他一些代码中,没有直接连接到$read变量
$query = sprintf("SELECT * FROM topics WHERE id='%s';",$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 />";
}
$id=1;
$query=“从`topics1`中选择*,其中`id`={$id}”;
echo“:正在尝试查询->{$Query}
”;
$res=mysql\u query($query,$dblink);
如果($res)当你说它不起作用时,什么东西不起作用了?你收到错误了吗?它没有返回结果吗?错误消息是什么?不要echo
变量进行调试,使用var\u dump
echo“1”
将给你与echo“1”相同的输出
并且您将不知道任何不可打印的字符,而var\u dump
将告诉您以字节为单位的类型和大小。@Jrod它只是不显示任何内容,当我执行mysql\u num\u行时,它会显示0
$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 />";
}