2013-01-03 96 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); 

这有助于识别这样的事情。