2016-10-15 18 views
-1

PHPフォームからSQLデータベースにデータを送信しようとしています。 Webページはデータベースに接続する際にエラーを発生させませんが、これらの変数をhtmlからmysqlに渡す方法を理解することはできません。MySQLテーブルに追加するPHPフォーム

$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) 
    OR die('Could not connect to MySQL: ' . 
    mysqli_connect_error()); 

    $sql = "insert into music (song, artist, album, year genre) 
      values('$song', '$artist', '$album', '$year', '$genre',)"; 
    $dbc->query($sql) 

答えて

0

フォームメソッドがPOSTであると仮定すると、$_POST[]配列が使用されます。 HTMLフォーム要素idは、配列要素にアクセスするために使用します。

たとえば、<input type="text" id="name">がある場合は、$_POST['name']を使用してフォームから名前を取得します。

また、$_POST,$_GET、および$_COOKIEの値を含む$_REQUEST['']を使用することもできます。

SQLインジェクションやユーザー入力を処理するその他の問題を防ぐには、mysqli_real_escape_string()も使用します。次のように入力します。

$firstName = mysqli_real_escape_string($connection, $_REQUEST['firstName']); 

次に、$firstNameをクエリに挿入します。 mysqli_real_escape_string()ため

さらに詳細:
PHP.net
W3Schools

+2

あなたはOPに保護層を与えるために、 'mysqli_real_escape_string()'について指摘しなければなりません。 – Phiter

+0

非常に良い点、@PhiterFernandes。私の答えを編集して自由にそれを含めることができます:) –

+1

Stack Overflowであなたの旅を始めると、mysql_ *を使用して多くのPHP質問に出くわし、 '$ _POST'と' $ _GET'を直接追加しますクエリ。 SQLインジェクションについて毎回警告する必要があります。これにより、より多くのアップフォースが得られます。 – Phiter

関連する問題