0

次のフォームの単一のフィールド投稿があります。

<form action="post.php" method="post">
<input type="text" name="foo" />

post.phpのデータベースで名前がfoo付けられた小さな mySql テーブルに挿入しようとしています。'datatable''mydatabase'

この文字列は、テーブルにデータ行を追加するために機能します。

mysql_query('INSERT INTO 'mydatabase'.'datatable' ('data') VALUES (\'testabc\');');

したがって、接続文字列が機能していることはわかっています。($_POST['foo'])ただし、実際の投稿データをテーブルに挿入する方法がわかりません。次のような文字列を試しました:

mysql_query('INSERT INTO 'mydatabase'.'datatable' ('data') VALUES (\'' + $_POST['foo'] + '\');');

しかし、これを機能させるための正しい構文を理解できません。頭脳明晰な方で、私を正しい方向に導く手助けをしてくれる人はいますか?

どうもありがとう...

4

2 に答える 2

3

PHP は.ではなく、連結に使用し+ます。

ただし、実際には使用しないでくださいmysql_*PDOを強くお勧めします。使い方は簡単で、インジェクションから保護します (現在、インジェクションに対して脆弱です)。また、マジック クォートが有効になっていることを考慮する必要があるためstripslashes、投稿データが適切である可能性があります。 trim. 通常も同様です。

于 2012-10-21T05:13:35.243 に答える
1

問題は+、クエリ文字列の一部を連結するために使用していることです。PHP では、文字列の連結はドットを使用して行われ.ます。あなたができることは

mysql_query('INSERT INTO `mydatabase`.`datatable` (`data`) VALUES (\'' . mysql_real_escape_string($_POST['foo']) . '\');');

ただし、以下のコメントで言及されているように、実際には PDO を使用する必要があります。

于 2012-10-21T05:11:46.833 に答える