2013-01-03 133 views
1

我想將一個變量傳遞給一個非常基本的mysql查詢。但PHP不返回一個真正的價值。沒有。Mysql查詢變量語法

我已經檢查了所有內容

問題在這裏。

$一個varible打字的語法爲MySQL查詢

$result = mysql_query("SELECT id,floatingnumber FROM posts WHERE id='$a' LIMIT 1"); 

當我改變$ a的值22,它返回一個值,否則什麼都沒有。

準確的查詢是這裏...

$a=$this->post_id; 
$result = mysql_query('SELECT floatingnumber FROM posts WHERE id="'.$a.'" LIMIT 1')or die(mysql_error()); 

$row = mysql_fetch_row($result); 

    $sdfa=$a.'-'.$row[0]; 

$ sdfa返回 「86 - 」 不帶引號86 - 空間

所以問題上的MySQL抓取行請幫

+0

'22'或22'... –

+0

22。 。 。 。 ..。 ......。 – barann

+0

那麼,這是什麼告訴你...... –

回答

0

有您嘗試回顯查詢以查看$a的真實價值是什麼?

echo "SELECT id,floatingnumber FROM posts WHERE id='$a' LIMIT 1"; 

您是否嘗試過檢查錯誤?

$result = mysql_query("SELECT id,floatingnumber FROM posts WHERE id='$a' LIMIT 1") or die(mysql_error()); 

此外,你甚至不應該使用mysql_ *,因爲它已被棄用。

這是你會怎麼做,在PDO:

$stmnt = $db->prepare("SELECT id,floatingnumber FROM posts WHERE id=:id LIMIT 1"); 
$stmnt->bindValue(':id' , $a , PDO::PARAM_INT); 
$stmnt->execute(); 
$result = $stmnt->fetchAll(PDO::FETCH_ASSOC); 
+0

那麼你的$ a doesen't不包含它應該。調試$ a,看看出了什麼問題 – vodich

+0

$ a是containig 22的值,但是當我嘗試在mysql npothings中使用時返回 – barann

+0

嗯,並且您已嘗試檢查查詢中的錯誤? – 2013-01-03 23:55:59

0

試試這個

$result = mysql_query("SELECT id,floatingnumber FROM posts WHERE id='".$a."' LIMIT 1"); 

如果您$a是那麼一些做這樣的

$result = mysql_query("SELECT id,floatingnumber FROM posts WHERE id= $a LIMIT 1"); 

編輯:

你的代碼是正確的

$row = mysql_fetch_row($result); 

     $sdfa=$a.'-'.$row[0]; 

的問題是在你的SQL或表,因爲沒有floatingnumber其中id是86

+0

什麼也沒有發生我編輯我的帖子 – barann

+0

,但我看到你的問題已經解決,因爲你接受navnav的答案。我編輯了我的答案 –

0

通常當我寫在雙引號,只需在變量作品將:

"... $1 ..." 

而且,本來我學會了用括號

"... {$1} ..." 

,你可以試試。另外,編寫查詢的方便方法是將查詢字符串存儲在其自己的變量中,以便您可以輕鬆打印出查詢並查看提交之前寫入的內容。

$query = "SELECT id,floatingnumber FROM posts WHERE id=$a LIMIT 1"; 
$result = mysql_query($query); 

這有助於識別這樣的事情。