以下は、プリペアドステートメントで変更されたコードです。
最初のステップは、データベースに接続することです。そのためには、アクセスの詳細を定義する必要があります。
// Define Database Credentials
$servername = "localhost"; //Server Name
$username = "KyleHulse"; //Username to the DB
$password = "(my password)"; //Password to the DB
$dbname = "csdb1082"; //Name of the Database
// Create Database Connection
$conn = new mysqli($servername, $username, $password, $dbname);
次に、接続を確認します。
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
この後、クエリを実行します。これは個人的なプロジェクトであるため、SHA1
を使用していることに注意してください。 パスワードのハッシュとして。より大きなプロジェクトの場合は、パスワードを保護する方法についてさらに調査することをお勧めします。
クエリを実行するには、まずクエリを準備します。これがあなたのやり方です。
$stmt = $conn->prepare("INSERT INTO feedback (user, password, email) VALUES (?, ?, ?)");
ここでは、ステートメントを$stmt
に保存します 変数。クエリにはINSERT INTO
があります テーブルの名前が続きます。あなたの場合はfeedback
です 。
この後、最初の括弧に保存するテーブルのフィールドに入力します。あなたの場合は(user, password, email)
になります 続いてVALUES
。
この後、(?, ?, ?)
を使用して実際の値のプレースホルダーを追加します 。 ?
の総数に注意してください 前の括弧内のフィールドの総数と一致する必要があります。
次に、変数をこれらの?
にバインドする必要があります。 。これは、
$stmt->bind_param("sss", $user, $password, $email);
"sss"
に注意してください 渡される値の形式です。以下はフォーマットです。
i - integer
d - double
s - string
b - BLOB
したがって、3つの値を渡す必要があるため、3つのs
があります。 、続いて、HTMLフォームの値を格納する変数
$user = $_POST["user"];
$password = sha1($_POST["password"]); //simplest way to use SHA1 hash.
$email = $_POST["email"];
これで、準備されたステートメントを実行する必要があります。
$stmt->execute();
以上です!
以下は完全なコードです。
// Define Database Credentials
$servername = "localhost"; //Server Name
$username = "KyleHulse"; //Username to the DB
$password = "(my password)"; //Password to the DB
$dbname = "csdb1082"; //Name of the Database
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("INSERT INTO feedback (user, password, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $user, $password, $email);
$user = $_POST["user"];
$password = sha1($_POST["password"]); //simplest way to use SHA1 hash.
$email = $_POST["email"];
$stmt->execute();
これがお役に立てば幸いです。