1

非常に基本的な mysql クエリに変数を渡そうとしています。しかし、php は真の値を返しません。なし。

私はすべてをチェックしました

問題はここにあります。

mysql クエリに入力する $a 変数の構文

$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フェッチ行にあります助けてください

4

3 に答える 3

0

通常、二重引用符で書いているときは、変数を入力するだけで機能します。

"... $1 ..."

でも、もともとは括弧で学んだ

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

あなたはそれを試すことができます。また、クエリを作成する便利な方法は、クエリ文字列を独自の変数に格納することです。これにより、クエリを簡単に印刷して、送信する前に作成した内容を確認できます。

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

これは、このようなものを識別するのに役立ちます。

于 2013-01-03T23:50:59.503 に答える
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];

floatingnumberid がある場所がないため、問題は SQL またはテーブルにあります86

于 2013-01-03T23:48:30.143 に答える