Hướng dẫn insert into mysqli php with variables - chèn vào php mysqli với các biến
Đã lâu rồi và có lẽ bạn đã tìm ra câu trả lời nhưng chỉ trong trường hợp, hóa ra đó thực sự là một vấn đề đơn giản trong đó bạn đặt trích dẫn và dấu chấm đôi trong câu lệnh MYSQLI truy vấn tại các giá trị ('". $ Username" '), nhưng nếu bạn chỉ để nó trong các trích dẫn đơn và chỉ viết tên biến bên trong các trích dẫn như, giá trị (' $ username '), nó sẽ hoạt động. Tôi nghĩ rằng nó áp dụng cho các phiên bản mới của PHP mặc dù không chắc chắn thay đổi Show
đến
Thông báo trong trường Giá trị Biến của tôi không được đặt trong các trích dẫn kép hoặc được nối trong các khoảng thời gian, tức là các giá trị ('$ username'), vì nó sẽ lưu các khoảng thời gian dưới dạng giá trị. Điều này phù hợp với tôi nhưng tôi đã nhận thấy một vấn đề trong việc chạy truy vấn với cùng một giá trị một lần nữa, nó mang lại lỗi nhưng có thể tránh được bằng cách thêm một cột trong bảng cơ sở dữ liệu của bạn cho ID tăng tự động để đảm bảo rằng giá trị là được thay đổi mỗi khi bạn chạy truy vấn Hi vọng điêu nay co ich
Trước hết chức năng này sẽ cần một chức năng trợ giúp của riêng nó. Chúng tôi sẽ cần một chức năng để thoát khỏi số nhận dạng MySQL. Có, tất cả các định danh phải được trích dẫn và thoát ra, theo tiêu chuẩn MySQL, để tránh các vấn đề cú pháp khác nhau.prepared statements for any SQL query that would contain a PHP variable. Therefore, as usually the INSERT query makes little sense without variables, it should always run through a prepared statement. To do so:
Câu lệnh đã chuẩn bị MySQLI với nhiều giá trị cho trong mệnh đề Chạy truy vấn chèn với mysqli thôGiải trình Nhận xét (3)Không cần phải nói rằng bạn phải sử dụng các câu lệnh đã chuẩn bị cho bất kỳ truy vấn SQL nào có chứa biến PHP. Do đó, như thường thì truy vấn chèn có rất ít ý nghĩa mà không có biến, nó phải luôn luôn chạy qua một câu lệnh đã chuẩn bị. Làm như vậy: Giải trìnhNhận xét (3)
Không cần phải nói rằng bạn phải sử dụng các câu lệnh đã chuẩn bị cho bất kỳ truy vấn SQL nào có chứa biến PHP. Do đó, như thường thì truy vấn chèn có rất ít ý nghĩa mà không có biến, nó phải luôn luôn chạy qua một câu lệnh đã chuẩn bị. Làm như vậy:
Thay thế tất cả các biến trong truy vấn bằng các dấu câu hỏi (được gọi là người giữ chỗ hoặc tham số)
Sau đó các biến phải được liên kết với câu lệnh. Cuộc gọi bao gồm hai phần - chuỗi với các loại và danh sách các biến. Với MySQLI, bạn phải chỉ định loại cho từng biến bị ràng buộc. Nó được đại diện bởi một chữ cái duy nhất trong tham số đầu tiên. Số lượng chữ cái phải luôn bằng số lượng biến. Các loại có thể là
Vì vậy, bạn có thể nói bây giờ rằng "SSS" có nghĩa là "sẽ có 3 biến, tất cả các loại chuỗi". Và sau đó, một cách tự nhiên, ba biến ngoan ngoãn làm theo.
Sau đó, truy vấn cuối cùng đã được thực thi. Có nghĩa là các biến được gửi đến máy chủ cơ sở dữ liệu và truy vấn thực sự được thực thi.
Chèn truy vấn với hàm trợ giúpNhư bạn có thể lưu ý, mã khá dài dòng. Nếu bạn thích xây dựng một mã như một nhân vật Lego, với hàng ngũ các nhà khai thác tỏa sáng, bạn có thể giữ nó như hiện tại. Nếu bạn, giống như tôi, ghét sự lặp lại vô dụng và thích viết mã ngắn gọn và có ý nghĩa, thì có một chức năng trợ giúp đơn giản. Với nó, mã sẽ trở nên ngắn hơn hai lần:
Ở đây chúng tôi đang gọi chức năng trợ giúp bằng cách sử dụng biến kết nối, truy vấn SQL và một mảng với các biến. Đơn giản, sạch sẽ và an toàn! Chèn truy vấn từ một mảngNó thường xảy ra rằng chúng ta có một mảng bao gồm các trường và các giá trị của chúng đại diện cho một hàng được chèn vào cơ sở dữ liệu. Và tự nhiên sẽ là một ý tưởng tốt để có một chức năng để chuyển đổi một mảng như vậy thành một câu lệnh SQL chèn chính xác và thực hiện nó. Vì vậy, ở đây nó đi (sử dụng hàm trợ giúp được đề cập ở trên nhưng bạn có thể dễ dàng viết lại nó thành RAW MySQLI nếu bạn muốn): Trước hết chức năng này sẽ cần một chức năng trợ giúp của riêng nó. Chúng tôi sẽ cần một chức năng để thoát khỏi số nhận dạng MySQL. Có, tất cả các định danh phải được trích dẫn và thoát ra, theo tiêu chuẩn MySQL, để tránh các vấn đề cú pháp khác nhau.a function to escape MySQL identifiers. Yes, all identifiers must be quoted and escaped, according to MySQL standards, in order to avoid various syntax issues.
Và bây giờ chúng ta cuối cùng có thể có một chức năng chấp nhận tên bảng và một mảng có dữ liệu và chạy truy vấn chèn đã chuẩn bị đối với cơ sở dữ liệu: Bài viết liên quan:Related articles:
Mysqli_query () được sử dụng để làm gì?Định nghĩa và cách sử dụng. Hàm truy vấn () / mysqli_query () thực hiện truy vấn đối với cơ sở dữ liệu.performs a query against a database.
Làm cách nào để chèn các ký tự đặc biệt vào MySQL bằng PHP?Nó khá là dễ.. A) Thoát khỏi các ký tự đặc biệt với A \. B) Sử dụng các câu lệnh được chuẩn bị PDO .. C) Nếu bạn muốn chuyển dữ liệu văn bản mà không phải lo lắng, bạn có thể mã hóa JSON hoặc cơ sở 64-mã hóa chuỗi của bạn trước khi lưu trữ nó trong cơ sở dữ liệu của bạn và sau đó giải mã nó trước khi xử lý .. Làm thế nào tôi có thể thêm các giá trị vào một cột trong một bảng trong MySQL?Trong cú pháp, trước tiên, bạn phải chỉ định tên của bảng.Sau đó, trong ngoặc đơn, bạn phải chỉ định tên cột của bảng và các cột phải được phân tách bằng dấu phẩy.Các giá trị mà bạn muốn chèn phải ở bên trong dấu ngoặc đơn và nó phải được theo sau bởi mệnh đề Giá trị.The values that you want to insert must be inside the parenthesis, and it must be followed by the VALUES clause.
Mysqli_query trở lại để chèn vào cái gì?Trả về các giá trị ¶ Đối với các truy vấn thành công tạo ra một tập kết quả, chẳng hạn như chọn, hiển thị, mô tả hoặc giải thích, mysqli_query () sẽ trả về đối tượng mysqli_result.Đối với các truy vấn thành công khác, mysqli_query () sẽ trả về đúng.mysqli_result object. For other successful queries, mysqli_query() will return true . |