Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao biểu mẫu đăng ký PHP MySQL này không hoạt động?

Dưới đây là mã được sửa đổi với Tuyên bố chuẩn bị.

Bước đầu tiên là kết nối với cơ sở dữ liệu. Để làm điều đó, chúng tôi cần xác định chi tiết truy cập.

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

Bây giờ hãy kiểm tra kết nối.

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

Sau đó, bạn chạy truy vấn của mình. Xin lưu ý rằng vì đây là dự án cá nhân của bạn, do đó tôi đang sử dụng SHA1 dưới dạng băm mật khẩu của bạn. Đối với một dự án lớn hơn, tôi khuyên bạn nên nghiên cứu thêm về cách bảo mật mật khẩu của mình.

Để chạy truy vấn, đầu tiên là chuẩn bị cho nó. Đây là cách bạn làm.

$stmt = $conn->prepare("INSERT INTO feedback (user, password, email) VALUES (?, ?, ?)");

Trong đó, bạn lưu trữ câu lệnh trong $stmt Biến đổi. Truy vấn có INSERT INTO theo sau là tên của bảng. Trong trường hợp của bạn, đó là feedback .

Sau đó, bạn điền vào các trường của bảng sẽ được lưu trong dấu ngoặc đơn đầu tiên. Trong trường hợp của bạn, nó sẽ là (user, password, email) theo sau là VALUES .

Sau đó, bạn thêm trình giữ chỗ cho các giá trị thực bằng (?, ?, ?) . Xin lưu ý rằng tổng số ? phải khớp với tổng số trường trong dấu ngoặc trước đó.

Bây giờ bạn phải liên kết các biến với các ? này . Điều này được thực hiện bởi,

$stmt->bind_param("sss", $user, $password, $email);

Xin lưu ý rằng "sss" là các định dạng của các giá trị được truyền. Dưới đây là các định dạng.

i - integer
d - double
s - string
b - BLOB

Vì vậy, bạn cần chuyển 3 giá trị, do đó bạn có 3 s , theo sau là các biến nơi bạn sẽ lưu trữ các giá trị từ biểu mẫu HTML bằng,

$user = $_POST["user"];
$password = sha1($_POST["password"]); //simplest way to use SHA1 hash.
$email = $_POST["email"];

Bây giờ bạn chỉ cần thực hiện câu lệnh đã chuẩn bị.

$stmt->execute();

Vậy là xong!

Dưới đây là mã đầy đủ.

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

Hy vọng điều này sẽ hữu ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy cập cơ sở dữ liệu MySQL trong trực quan hóa d3

  2. mysql chèn vào bảng nếu tồn tại

  3. Đang cố gắng 'gọi' các thủ tục được lưu trữ bằng CodeIgniter

  4. MySql PHP chọn số lượng các giá trị khác biệt từ dữ liệu được phân tách bằng dấu phẩy (thẻ)

  5. Số lượng cột MySQL không khớp với số lượng giá trị ở hàng 1