我想打印出一些主題信息,但它不是很好。這是我的查詢:mysql查詢使用純文本,但沒有與變量
SELECT * FROM topics WHERE id='$read'
這是行不通的。我回應了$read
變量,它說1
。那麼,如果我這樣做:
SELECT * FROM topics WHERE id='1'
它完美的作品。我不明白是什麼問題。 $read
或其他任何類似的東西都沒有隱藏的字符。
我想打印出一些主題信息,但它不是很好。這是我的查詢: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}"
如果使用strings
出於某種原因,火象
$id = '1';
$query = "SELECT * FROM topics1 WHERE id = '{$id}'"
不需要括號:) –
是,添加它只是可讀性的原因 – Akash
SELECT * FROM topics WHERE id=$read
查詢它認爲它是字符串,如果你把我單引號
像這樣嘗試:
$query = "SELECT * FROM topics WHERE id='" . $read . "'"
嘗試這樣的:SELECT * FROM主題WHERE ID = $讀
我不知道爲什麼所有的參與者並沒有讀到明確表示質疑,認爲與查詢報價
SELECT * FROM topics WHERE id='1'
行得通。
至於問題本身,它可能是一些錯字。也許在一些其他的代碼,而不是直接連接到$讀取變量
嘗試
$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 />";
}
這將至少讓你通話之間監視,看看你的查詢實際上看起來像什麼MySQL的說一下,如果一切都失敗了確保你正在尋找的ID確實存在。
當你說它不起作用,什麼是不工作?你有錯誤嗎?它沒有返回結果嗎? – Jrod
什麼是錯誤信息? – theMarceloR
不要'echo'變量來調試,使用'var_dump'。 '回聲「1」;'會給你輸出爲'回聲‘1’相同;',你會不知道任何非打印字符,而'var_dump'會告訴你,以字節爲單位的類型和尺寸。 –