По-долу е модифицираният код с подготвено изявление.
Първата стъпка е да се свържете с базата данни. За да направим това, трябва да дефинираме подробностите за достъп.
// 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();
Надявам се това да помогне.