14

重複の可能性:
mysql_fetch_array() は、パラメーター 1 がリソースであると想定しており、select でブール値が指定されています

ここで簡単な質問。

SELECT クエリがあります

SELECT FROM friendzone WHERE ID = '$editID'"

これにより、結果として1行しか得られないと確信しています.DBでIDを複製することはできません。

列の値にアクセスするにはどうすればよいですか?

$row = mysql_fetch_array($query);

配列を作成する必要がないので、これは役に立たないと思います..行は1つしかありません!

私がそれをWhile cicleに入れず、例えばやろうとすると

.$row['ID'].

私は得る:

mysql_fetch_array() expects parameter 1 to be resource, boolean given

よろしくお願いします。

4

3 に答える 3

18

mysql_*新しいコードで関数を使用しないでください。それらはもはや維持されておらず、 非推奨プロセスが開始されています。赤いボックスが か? 代わりに 準備済みステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを決定するのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

試してみてください:

$query = mysql_query("SELECT * FROM friendzone WHERE ID = '$editID'");
$row = mysql_fetch_array($query);

print_r($row);

MySQLi コード:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new mysqli('host', 'username', 'password', 'database');
$stmt = $conn->prepare("SELECT * FROM friendzone WHERE ID = ?");
$stmt->bind_param("s", $editID);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();

print_r($row);
于 2012-12-09T20:35:12.127 に答える
3

何かがうまくいかなかったので、おそらくあなた$queryは等しいです。何が悪いのかを見てみてください。falsemysql_error()

そして2つの小さなアドバイス:

  1. mysql_* 関数は非推奨であるため、 PDOodを使用することをお勧めします。mysqli

  2. mysql_real_escape_string()SQL文字列に入れる前に、少なくとも値をエスケープするために使用します

于 2012-12-09T20:37:40.867 に答える
-2

select の一般的な構文を選択しようとしている列がわからないので、

"SELECT column1, column2, column3 FROM friendzone WHERE ID ='$editID'"

または、すべての列を選択する場合は、次のように入力します

"SELECT * FROM friendzone WHERE ID = '$editID'"
于 2012-12-09T20:40:05.770 に答える