Chiều dài/giá trị mysql

Trong bài hướng dẫn này, chúng tôi sẽ chỉ cách bạn quản lý cơ sở dữ liệu từ các tập lệnh PHP của bạn. Bạn sẽ biết cách sử dụng PHP để CHÈN VÀO CƠ SỞ DỮ LIỆU MYSQL bằng phương thức MySQLi và đối tượng dữ liệu PHP. Trước khi bắt đầu bài hướng dẫn PHP MySQL chèn dữ liệu này, bạn cần truy cập vào bảng điều khiển lưu trữ của bạn trước đó

Nhận giảm giá khi sử dụng PHP hosting hôm nay. Giảm tới 90% trong thời gian ngắn

Start

Nếu bạn không chắc chắn làm thế nào để thiết lập kết nối MySQL, bạn có thể xem qua bài hướng dẫn PHPMySQL này. Nó có hướng quan trọng để làm việc giữa PHP và cơ sở dữ liệu

Tạo bảng (tuỳ chọn)

Đầu tiên, bạn cần tạo cơ sở dữ liệu để chèn vào cơ sở dữ liệu sql. Việc tạo cơ sở dữ liệu này cũng rất đơn giản, bạn chỉ cần thực hiện các bước sau

  1. Tìm đến mục Cơ sở dữ liệu MySQL trong Bảng điều khiển
    Chiều dài/giá trị mysql

  2. Tại mục Tạo cơ sở dữ liệu MySQL mới và người dùng cơ sở dữ liệu mới, bạn nhập tên cơ sở dữ liệu, tên người dùng cơ sở dữ liệu và mật khẩu rồi nút Tạo mới nhất là bạn đã tạo thành công cơ sở dữ liệu

Sau khi đã có cơ sở dữ liệu. Vui lòng truy cập vào phpMyAdmin của databasae để tiến hành tạo bảng cho cơ sở dữ liệu. Rất đơn giản để làm như vậy với phpMyAdmin, được đặt trong bảng điều khiển lưu trữ như bạn thấy ở trên màn hình. Sau khi vào trang phpMyAdmin, bạn sẽ thấy cấu hình tương tự như sau

Chiều dài/giá trị mysql

Chúng tôi sẽ tạo bảng có tên Học sinh cho cơ sở dữ liệu u266072517_name. Bạn có thể tạo bảng bằng cách nhấp vào nút Tạo bảng. Sau đó, bạn sẽ thấy trang này để điền tất cả thông tin cần thiết cho bảng đó

Chiều dài/giá trị mysql

Đây là bước thiết lập đơn giản nhất để bạn có thể sử dụng bảng, để biết thêm thông tin liên quan đến cấu trúc bảng/cơ sở dữ liệu và bất kỳ thiết lập nào khác liên quan đến các cột này, hãy xem qua hướng dẫn chính thức

Bây giờ, đây là phần giải thích cơ bản về cột mà chúng tôi đã sử dụng

  • Name – Tên cột. Nó sẽ hiển thị trên bảng đầu tiên
  • Type – You can't phan loai cột at here. Ví dụ, chúng tôi chọn varchar vì chúng tôi cần điền một chuỗi tên ở đây (là ký tự, thay vì là số)
  • Độ dài/Giá trị – Được sử dụng để xác định độ dài của mục nhập trong cột mà có thể có
  • Index – Chúng tôi sử dụng “Primary” cho trường “ID”. Khi tạo bảng, chúng tôi khuyến nghị có một cột ID. Được sử dụng để đánh số từng mục và để tạo mối quan hệ với các bảng khác. Chúng tôi cũng chọn “A_I”, nghĩa là Tăng tự động. Nó sẽ tự động tăng dần số lượng (1,2,3,4…)

Nhấp vào nút Lưu, bảng của bạn sẽ được tạo

Viết mã PHP để CHÈN vào cơ sở dữ liệu MySQL

Có hai phương pháp bạn có thể sử dụng để CHÈN dữ liệu vào cơ sở dữ liệu MySQL. Phương pháp PHP MySQLi và PHP Data Object hoặc PDO method

MySQLi method

Đầu tiên, bạn cần thiết lập kết nối tới cơ sở dữ liệu. Khi hoàn tất, chúng ta có thể bắt đầu sử dụng truy vấn SQL INSERT trong SQL. Đây là toàn bộ mã code PHP tạo kết nối và chèn trong SQL cơ bản

[email protected]')";
if (mysqli_query($conn, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "
" . mysqli_error($conn); } mysqli_close($conn); ?>

There is the first code of code (dòng 3-18) used to connect to database. Chúng tôi sẽ không giải thích nhiều về công việc này nữa, nhưng nếu bạn muốn, bạn có thể tham khảo bài viết hướng dẫn về cơ sở dữ liệu kết nối trước của chúng tôi

Please start with line 19

$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Thom', 'Vial', '[email protected]')";

Đây là dòng quan trọng nhất của mã của chúng tôi, nó làm tất cả mọi thứ chúng tôi cần trong bài hướng dẫn này – chèn vào cơ sở dữ liệu MySQL dữ liệu cần thiết. INSERT INTO is command to add data into the table in mysql database. At ví dụ của chúng tôi, chúng tôi đang thêm databa vào bảng có tên Sinh viên

Hơn nữa, giữa các cặp dấu ngoặc đơn, chúng tôi có cột được xác định cụ thể (tên, họ, email). Dữ liệu sẽ được thêm vào theo tuần tự. Nếu chúng tôi viết (email, họ, tên), giá trị cũng sẽ được thêm vào theo thứ tự khác nhau đó

Do đó, điểm tiếp theo là VALUES tuyên bố. Tại đây chúng ta sẽ đưa ra dự kiến ​​cụ thể về từng cột tương ứng. Bằng cách này, mỗi cột sẽ có giá trị tương ứng. Ví dụ trong trường hợp này sẽ là. tên = Thơm, họ = Lọ, email = [email được bảo vệ]

Một điểm đáng lưu ý là chúng tôi chạy truy vấn SQL bằng mã PHP, truy vấn SQL phải được đặt trong dấu nháy đơn. Ở ví dụ này, tất cả những gì trong flash menu và sau

$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Thom', 'Vial', '[email protected]')";
2 là một truy vấn SQL

Tiếp theo mã (20 – 22 dòng) sẽ kiểm tra xem truy vấn SQL có được thực thi thành công hay không

if (mysqli_query($conn, $sql)) {
     echo "New record created successfully";
}

Nó chỉ đơn giản là chạy thông báo truy vấn có thành công hay không

Cuối cùng (dòng 22 – 24 ) hiển thị một thông báo truy vấn trường hợp khác của chúng ta không chạy được

else {
     echo "Error: " . $sql . "
" . mysqli_error($conn); }

Nó sẽ cho họ biết có lỗi nếu lỡ có điều gì không đúng xảy ra

Phương pháp PHP Data Object (PDO)

Cũng như ở ví dụ trước, chúng ta thiết lập kết nối tới cơ sở dữ liệu trước, bằng cách tạo một đối tượng PDO – bài hướng dẫn kết nối tới mysql bằng PHP sẽ chỉ cho bạn cách làm này. Khi kết nối tới cơ sở dữ liệu MySQL là một đối tượng PDO, bạn phải sử dụng nhiều 'phương thức' PDO (bất kỳ chức năng nào là một phần của bất kỳ đối tượng nào) để chuẩn bị và chạy truy vấn. Các phương thức của các đối tượng được gọi như sau

$the_Object->the_Method();

PDO cho phép bạn 'chuẩn bị' mã SQL trước khi nó được thực thi. Truy vấn SQL được đánh giá và ‘chỉnh sửa‘ trước khi chạy. Bởi vậy, một cuộc tấn công SQL injection có thể được thực hiện chỉ bằng cách nhập mã SQL trong biểu mẫu điền thông tin. được đánh giá và 'sửa chữa' trước khi chạy. Ví dụ

// User writes this in the username field of a login form
john"; DROP DATABASE user_table;

// The final query becomes this
"SELECT * FROM user_table WHERE username = john"; DROP DATABASE user_table;

Because there are a true cấu trúc mã SQL, dấu ; . The command used to be not allow ” và ;

Bạn phải luôn sử dụng các câu lệnh đã chuẩn bị sẵn khi gửi hoặc nhận dữ liệu từ cơ sở dữ liệu với PDO

Để sử dụng các câu lệnh chuẩn bị, bạn phải viết một biến mới gọi phương thức chuẩn bị() của đối tượng cơ sở dữ liệu

Mã nguồn chính xác

 PDO::ERRMODE_EXCEPTION];

// Create a new connection to the MySQL database using PDO, $my_Db_Connection is an object
try { 
  $my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options);
  echo "Connected successfully";
} catch (PDOException $error) {
  echo 'Connection error: ' . $error->getMessage();
}

// Set the variables for the person we want to add to the database
$first_Name = "Thom";
$last_Name = "Vial";
$email = "[email protected]";

// Here we create a variable that calls the prepare() method of the database object
// The SQL query you want to run is entered as the parameter, and placeholders are written like this :placeholder_name
$my_Insert_Statement = $my_Db_Connection->prepare("INSERT INTO Students (name, lastname, email) VALUES (:first_name, :last_name, :email)");

// Now we tell the script which variable each placeholder actually refers to using the bindParam() method
// First parameter is the placeholder in the statement above - the second parameter is a variable that it should refer to
$my_Insert_Statement->bindParam(:first_name, $first_Name);
$my_Insert_Statement->bindParam(:last_name, $last_Name);
$my_Insert_Statement->bindParam(:email, $email);

// Execute the query using the data we just defined
// The execute() method returns TRUE if it is successful and FALSE if it is not, allowing you to write your own messages here
if ($my_Insert_Statement->execute()) {
  echo "New record created successfully";
} else {
  echo "Unable to create record";
}

// At this point you can change the data of the variables and execute again to add more data to the database
$first_Name = "John";
$last_Name = "Smith";
$email = "[email protected]";
$my_Insert_Statement->execute();

// Execute again now that the variables have changed
if ($my_Insert_Statement->execute()) {
  echo "New record created successfully";
} else {
  echo "Unable to create record";
}

Ở dòng 28, 29 và 30, chúng tôi sử dụng phương thức bindParam() của đối tượng cơ sở dữ liệu. Cũng có bindValue() nhưng cách sử dụng rất khác

  • bindParam() – Phương pháp này đánh giá dữ liệu khi thực hiện phương thức thực thi(). Lần đầu tiên scripts gặp phương thức execute() nó thấy $first_Name là “Thom”, gán giá trị cho nó và chạy truy vấn. Khi tập lệnh gặp phương thức exec() thứ 2, nó thấy $first_Name liên quan đến “John”, gán giá trị đó và chạy lại truy vấn lần nữa với giá trị mới. Điều quan trọng cần nhớ là chúng tôi đã định nghĩa truy vấn một lần và sử dụng lại nó với dữ liệu khác tại thời điểm khác trong tập lệnh
  • bindValue() – phương thức đánh giá dữ liệu ngay khi bindValue() được nhận. Khi giá trị $first_Name được gán cho “Thom” và bindValue() được thực thi, nó sẽ được sử dụng mỗi lần phương thức thực thi() được gọi cho $my_Insert_Statement

Ghi chú là tôi đã sử dụng lại biến $first_Name và cho nó giá trị mới ở lần thứ 2. Nếu bạn kiểm tra cơ sở dữ liệu sau khi chạy tập lệnh, bạn sẽ có cả 2 tên, mặc dù $first_Name có nghĩa là “John” đã được gán ở cuối tập lệnh. Hãy nhớ rằng PHP đã xem qua toàn bộ tập lệnh trước khi thực sự chạy nó

Nếu bạn cập nhật script và thay thế bindParam bằng bindValue, bạn sẽ chèn vào MySQL “Thom Vial” 2 lần trong cơ sở dữ liệu và John Smith sẽ bỏ qua

Xác nhận thành công và giải quyết các lỗi thường gặp khi chèn vào MySQL

Nếu truy vấn bạn chạy và chèn vào cơ sở dữ liệu MySQL thành công, bạn sẽ thấy thông báo sau

________số 8

Sửa các lỗi thường gặp về Insert Into MySQL

Will have at new record error with SEL insert. Nhưng đừng lo, có nhiều cách để bạn sửa lỗi MySQL này

MySQLi

Trong các trường hợp khác nhau, mỗi mã lỗi có thể được hiển thị. Ví dụ, hãy tạo một cấu trúc lỗi trong mã của chúng ta và chúng ta và chúng ta thấy lỗi như sau

Connect successfully
Error: INSERT INTO students {name, lastname, email} VALUES ('Test', 'Testing', '[email protected]')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{name, lastname, email} VALUES ('Test', 'Testing', '[email protected]')' at line 1"

Như chúng ta thấy, phần đầu tiên của mã thì đúng rồi, kết nối thành công, nhưng SQL vẫn báo lỗi

$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Thom', 'Vial', '[email protected]')";
0

Đây là lỗi cấu trúc, và vì vậy nó sẽ khiến tập lệnh chạy bị hỏng khi cố chèn vào MySQL. Lỗi ngay đây

$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Thom', 'Vial', '[email protected]')";
0

Như bạn đã thấy, chúng ta đã sử dụng dấu ngoặc móc thay vì dấu ngoặc đơn. Nó sai và vì vậy bạn sẽ thấy lỗi cú pháp bung (cấu trúc lỗi)

PDO

Ở dòng 7 của kết nối PDO, chế độ báo lỗi được đặt là 'hiển thị tất cả các ngoại lệ'. Nếu nó bị loại bỏ khỏi tập lệnh và truy vấn làm bạn thất vọng, bạn sẽ không nhận được bất kỳ mã lỗi nào. Với tùy chọn được kích hoạt, mã lỗi sẽ được hiển thị. Thường thì bạn chỉ nên làm như vậy khi đang thiết lập chương trình vì nếu lỗi hiển thị tên cơ sở dữ liệu và bảng ra, có thể khiến kẻ xấu thu thập các thôn gtin và cố truy cập cũng như chèn mã độc hại vào dữ liệu của bạn. Trong trường hợp lệ trên dấu ngoặc kép được sử dụng thay vì dấu ngoặc đơn, lỗi này sẽ giống như sau

$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Thom', 'Vial', '[email protected]')";
1

Các khả năng lỗi khác mà bạn có thể gặp phải

  • Sai cột (cột không tồn tại hoặc lỗi chính tả)
  • Loại giá trị khác được gán vào một cột cho phép giá trị khác. Ví dụ, nếu bạn gán số 47 vào cột Tên, chúng ta sẽ thấy lỗi vì nó cần giá trị chuỗi thay vì số. Nếu cố gán số trong dấu ngoặc kép “47”, có thể được nhưng số đó sẽ được xem là chuỗi trong cột
  • Cố gắng thêm dữ liệu vào bảng trong cơ sở dữ liệu mysql không tồn tại hoặc cố tạo lỗi chính tả cho bảng

Tất cả những lỗi này có thể được sửa chữa dễ dàng bằng cách làm theo hướng dẫn sửa lỗi

Sau khi nhập dữ liệu thành công, chúng ta sẽ thấy nó được thêm vào cơ sở dữ liệu. Đây là ví dụ của mục nhập dữ liệu, nó đã được thêm vào cơ sở dữ liệu. Ví dụ này của bảng mà chúng ta đã thêm và dữ liệu sẽ được hiển thị từ phpMyAdmin

Chiều dài/giá trị mysql

Lời kết

Trong bài hướng dẫn này, bạn đã biết làm thế nào để sử dụng PHP để CHÈN vào cơ sở dữ liệu MySQL dữ liệu cần thiết qua MySQLi và PDO. Khi thêm dữ liệu vào bảng trong mysql, chúng tôi cũng chỉ cho bạn một số cách để khắc phục một số lỗi kết nối phổ biến. Biết cách sử dụng PHP để chèn vào MySQL rất hữu ích nếu bạn đang học code hoặc đang tìm cách xây dựng website