0

難しい質問ですが、基本的には「タイトル」、「メッセージ」、「画像」ボックスを備えた Web フォームがあり、それらはすべて mysql の 1 つのテーブルにアップロードする際に機能します。

私がやりたいのは、投稿先のフォームに別のフィールドを作成することです。現在、2 つのページと 2 つのテーブルがあります。table Blog と table Blog_2 は、insert.php を INSERT INTO Blog または Blog_2 に変更すると、どちらも機能します。

しかし、フォーム内のフィールドにリンクされているフィールドと関数を使用できるようにしたいのですが$_POST[Blog] 、Blog または Blog_2 のいずれかを選択するドロップダウン ボックスがあります。

以下は私のコードです。私はそれを試してみましたが、うまくいかないようです。ご覧のとおり、$insert という変数を作成しました。

単なる構文の問題かもしれませんが、私はそれほど PHP に精通していません。

<?php
$con = mysql_connect("xxx","xxx","xxx");
mysql_select_db("databse") or die(mysql_error());

$insert = '$_POST[Blog]';

mysql_query("INSERT INTO $insert
(Date, Title, Message, Image) 
VALUES(now(), '$_POST[Title]' , '$_POST[Message]' , '$_POST[Image]' ) ")
or die(mysql_error()); 

echo "1 record added";


mysql_close($con);
?>
4

2 に答える 2

1

以下のようにしてみてください

$insert = mysql_real_escape_string($_POST['Blog']);

mysql_query("INSERT INTO ".$insert."
(Date, Title, Message, Image) 
VALUES(now(), '$_POST[Title]' , '$_POST[Message]' , '$_POST[Image]' ) ")
or die(mysql_error()); 

推奨事項:

1.MySQL インジェクションを防ぐ方法を学ぶ: Good Link

2.Mysql 拡張機能は、新しいコードの作成には推奨されません。代わりに、mysqli または PDO_MySQL 拡張機能を使用する必要があります。詳細: PHP マニュアル

于 2012-11-04T11:59:10.737 に答える
0
$insert = $_POST['Blog'];
function clean($text) {
 $text = str_replace("'", "\'", $text);
 return $text;
}
mysql_query("INSERT INTO ".$insert."
(`Date`, `Title`, `Message`, `Image`) 
VALUES(now(), '".clean($_POST['Title'])."' , '".clean($_POST['Message]'])."' , '".clean($_POST['Image]'])."' ) ")
or die(mysql_error()); 
于 2012-11-04T12:07:25.127 に答える