1

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

我已经检查了一切

问题就在这里。

$a 变量输入 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行上请帮忙

4

3 回答 3

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);
于 2013-01-03T23:47:01.843 回答
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 或表中,因为没有floatingnumberid 在哪里86

于 2013-01-03T23:48:30.143 回答
0

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

"... $1 ..."

而且,我最初是用括号学的

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

你可以试试。此外,编写查询的一种方便方法是将查询字符串存储在它自己的变量中,这样您就可以轻松地打印出查询并在提交之前查看您写的内容。

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

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

于 2013-01-03T23:50:59.503 回答