Poniżej znajduje się zmodyfikowany kod z przygotowanym oświadczeniem.
Pierwszym krokiem jest połączenie z bazą danych. Aby to zrobić, musimy zdefiniować szczegóły dostępu.
// 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);
Teraz sprawdź połączenie.
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
Następnie uruchamiasz zapytanie. Pamiętaj, że ponieważ jest to Twój osobisty projekt, używam SHA1
jako hash Twojego hasła. W przypadku większego projektu polecam dalsze badania, jak zabezpieczyć swoje hasło.
Aby uruchomić zapytanie, najpierw należy je przygotować. Tak to robisz.
$stmt = $conn->prepare("INSERT INTO feedback (user, password, email) VALUES (?, ?, ?)");
W tym miejscu przechowujesz wyciąg w $stmt
zmienny. Zapytanie ma INSERT INTO
po którym następuje nazwa tabeli. W twoim przypadku jest to feedback
.
Następnie wypełniasz pola tabeli, które mają zostać zapisane w pierwszym nawiasie. W Twoim przypadku będzie to (user, password, email)
po którym następuje VALUES
.
Następnie dodajesz symbole zastępcze dla rzeczywistych wartości za pomocą (?, ?, ?)
. Pamiętaj, że całkowita liczba ?
musi odpowiadać całkowitej liczbie pól w poprzednim nawiasie.
Teraz musisz powiązać zmienne z tymi ?
. Odbywa się to przez,
$stmt->bind_param("sss", $user, $password, $email);
Pamiętaj, że "sss"
to formaty przekazywanych wartości. Poniżej znajdują się formaty.
i - integer
d - double
s - string
b - BLOB
Musisz więc przekazać 3 wartości, więc masz 3 s
, a następnie zmienne, w których będą przechowywane wartości z formularza HTML,
$user = $_POST["user"];
$password = sha1($_POST["password"]); //simplest way to use SHA1 hash.
$email = $_POST["email"];
Teraz wystarczy wykonać przygotowaną instrukcję.
$stmt->execute();
To wszystko!
Poniżej znajduje się pełny kod.
// 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();
Mam nadzieję, że to pomoże.