Mysql查询变量语法

时间:2013-01-03 23:45:53

标签: php mysql

我正在尝试将变量传递给一个非常基本的mysql查询。但是php并没有返回真正的价值。什么都没有。

我检查了一切

问题出在这里。

$ a 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 fetch行上请帮忙

3 个答案:

答案 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);

答案 1 :(得分: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或table中,因为没有floatingnumber,其中id是86

答案 2 :(得分:0)

通常当我用双引号书写时,只需输入变量即可:

"... $1 ..."

但是,我最初用括号

学习它
"... {$1} ..."
你可以尝试一下。另外,编写查询的一种方便方法是将查询字符串存储在自己的变量中,这样您就可以轻松打印出查询并在提交之前查看您所写的内容。

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

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