Mysql
 sql >> база данни >  >> RDS >> Mysql

Защо тази форма за регистрация на PHP MySQL не работи?

По-долу е модифицираният код с подготвено изявление.

Първата стъпка е да се свържете с базата данни. За да направим това, трябва да дефинираме подробностите за достъп.

// 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();

Надявам се това да помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да анализирам Json данни от openlibrary api? (правилно)

  2. MySQL, DELETE заявка с Join

  3. Как да промените Collation на utf8_bin наведнъж

  4. Мога ли да използвам едно и също ограничение за външен ключ в две различни таблици?

  5. Генериране на MySQL в Excel с помощта на PHP