3

次の構造のデータベースがあります。

id  msg
1  'Hello'
2  'Bye'

「id」の「msg」値を取得する必要があります。

これは私の試みです:

$text = mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");

しかし、うまくいきません:(提案はありますか?ありがとう

4

5 に答える 5

9

削除するtext

$result = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'");
while ($row = mysql_fetch_array($result)) 
{
    $text = $row['msg'];  
}

あなたのコードは脆弱ですSQL Injection以下の記事を読んでください、

PHPでSQLインジェクションを防ぐにはどうすればよいですか?

于 2012-10-21T17:18:01.763 に答える
3

変化する

mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");

mysql_query("SELECT msg FROM text WHERE id ='$msg_num'");

このタイプのクエリは、MySQL インジェクション攻撃の原因になる可能性があります。準備されたステートメントを使用して、1 次インジェクションを停止するために使用するのに適しています。

1)Mysqli

2) PDO

于 2012-10-21T17:17:18.643 に答える
2
select id from text where id = '$msg_num'

このクエリの違いは、列を選択することです。「msg」という名前の列はありません。それが値です。

編集:申し訳ありませんが、表を間違って読んでください(横向き)。

于 2012-10-21T17:17:33.223 に答える
1

構文が正しくありません。

$text = mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");

する必要があります:

$text = mysql_query("SELECT msg FROM text WHERE id='$msg_num'");

mysql_error()このようなことを診断するために使用できます。

于 2012-10-21T17:17:44.823 に答える
1
$text = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'") or die(mysql_error());
于 2012-10-21T17:17:54.850 に答える