なぜこのPHPスクリプトは数値6だけを返すのですか?

mysql php
なぜこのPHPスクリプトは数値6だけを返すのですか?

このスクリプトは、Mysqlから現在の人気を得て、その数字に1桁を追加してから更新することになっています。 しかし、これは起こらず、「6」のみを返します。

ソース:

  2  0


ベストアンサー

結果から値を取得する必要があります。 mysql_fetch_assocまたはそれに似たものを使用します。

1


mysql_fetch_array()を使用して、最初の行から値を取得する必要があります。

 $row = mysql_fetch_array($current_pop);
 $current_pop = $row[0];

ただし、1つのSQLクエリでpop値を更新できます。

mysql_query("UPDATE likes SET pop=(pop+1) WHERE id=$like") or die ("Query failed: " . mysql_error());

1


mysql_queryは、クエリの `pop`フィールドの結果ではなく、リソースへの参照を返します。

このようなことをする必要があります…​

$result = mysql_query("SELECT pop FROM likes WHERE id=$like") or die ("Query failed: " . mysql_error());
if ($result) {
    $row = mysql_fetch_assoc($result);
    $current_pop = $row['pop'];
} else {
    // handle error here
}

また、mysql_real_esacpe_stringを、あなたのような生のSQLクエリの変数の周りで使用する必要があります。

1


そのはず

1


Try

0


タイトルとURLをコピーしました