1
MySQLを使用してPHPでフォームを作成しようとしています。PHPでMySQLデータベースからテーブルを選択するには?
このフォームのテーマは、form.php
です。すべて飲み物です。飲み物のID(PRIVATE KEY AUTO_INCREMENT)、飲み物の名前、そして飲み物の名前の3つの列だけが含まれている飲み物(ベルギーのビール、ワイン、ソーダ、ラム、価格(char)。他の表の残りの列は同じで、値は異なります。
MySQLのテーブルを選択して、選択したテーブル内の列にデータを追加/削除できるドロップダウンを作成したいとします。
表、列、およびフォーム要素の名前には、オランダ語で名前が付けられています。
これらは私が知っているものです: 1)データベース
<?php
if (! empty($_POST))
{
$mysqli = new mysqli('localhost','root','','welkom');
if ($mysqli ->connect_error)
{
die('connect error: '. $mysqli->connect_errno . ': ' . $mysqli->connect_error);
}
$sql = "INSERT INTO abdijbieren (naam, prijs) VALUES ('{$mysqli->real_escape_string($_POST['naam'])}','{$mysqli->real_escape_string($_POST['prijs'])}')";
$insert = $mysqli->query($sql);
if ($insert)
{
echo "Success! Row ID: {$mysqli->insert_id}";
}
else
{
die("Error: {$mysqli->errno} : {$mysqli->error}");
}
$mysqli->close();
}?>
2にデータを追加するためのPHPコード)フォーム
<form method="post" action="check.php"> <!--check.php is not made yet but when that happens it should be used to automatically update the selected table and auto-return to form.php -->
<input name="naam" type="text" placeholder="naam drank/snack" required><br>
<input name="prijs" type="text" placeholder="prijs" required><br>
<input type="submit" value="Submit form">
</form>
私はそれを行うことができますすべてのある特定の列にデータを追加することです。 私がこれをどのように解決できるか知っていれば、あなたは私のヒーローです。
** WARNING **:あなたはパラメータ化[使用する必要がありますmysqli' '使用クエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param'](http://php.net/manual/en/mysqli-stmt.bind- param.php)を使用してユーザーデータをクエリに追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成するため、マニュアルエスケープと文字列補間または連結を使用しないでください。誤ってエスケープされていないデータは重大なリスクです。 – tadman
'$ sql = mysqli-> prepare(" INSERT INTO abdijbieren(naam、prijs)VALUES(?、?)) "; $ sql-> bind_param( 'ss'、$ _ POST ['naam']、$ _ POST ['prijs']); –
あなたの主な問題は非常に悪いデータベース設計だと思います。いくつかのデータベース設計チュートリアルを行い、データベースを再設計する – RiggsFolly