Hướng dẫn php mysql escape single quote - php mysql thoát báo giá đơn

Tôi có một vấn đề khó hiểu mà tôi dường như không thể hiểu được ...

Tôi có hai câu lệnh SQL:

  • Đầu tiên nhập thông tin từ một biểu mẫu vào cơ sở dữ liệu.
  • Cái thứ hai lấy dữ liệu từ cơ sở dữ liệu được nhập ở trên, gửi email và sau đó ghi lại các chi tiết của giao dịch

Vấn đề là có vẻ như một trích dẫn duy nhất đang kích hoạt lỗi MySQL trên mục thứ hai! Trường hợp đầu tiên hoạt động mà không có vấn đề, nhưng trường hợp thứ hai kích hoạt mysql_error[].

Dữ liệu từ một biểu mẫu có được xử lý khác với dữ liệu được ghi dưới dạng không?

Truy vấn 1 - Điều này hoạt động mà không có vấn đề [và không thoát khỏi trích dẫn duy nhất]

$result = mysql_query["INSERT INTO job_log
[order_id, supplier_id, category_id, service_id, qty_ordered, customer_id, user_id, salesperson_ref, booking_ref, booking_name, address, suburb, postcode, state_id, region_id, email, phone, phone2, mobile, delivery_date, stock_taken, special_instructions, cost_price, cost_price_gst, sell_price, sell_price_gst, ext_sell_price, retail_customer, created, modified, log_status_id]
VALUES
['$order_id', '$supplier_id', '$category_id', '{$value['id']}', '{$value['qty']}', '$customer_id', '$user_id', '$salesperson_ref', '$booking_ref', '$booking_name', '$address', '$suburb', '$postcode', '$state_id', '$region_id', '$email', '$phone', '$phone2', '$mobile', STR_TO_DATE['$delivery_date', '%d/%m/%Y'], '$stock_taken', '$special_instructions', '$cost_price', '$cost_price_gst', '$sell_price', '$sell_price_gst', '$ext_sell_price', '$retail_customer', '".date['Y-m-d H:i:s', time[]]."', '".date['Y-m-d H:i:s', time[]]."', '1']"];

Truy vấn 2 - Điều này thất bại khi nhập tên với một trích dẫn duy nhất [ví dụ: O'Brien]

$query = mysql_query["INSERT INTO message_log
[order_id, timestamp, message_type, email_from, supplier_id, primary_contact, secondary_contact, subject, message_content, status]
VALUES
['$order_id', '".date['Y-m-d H:i:s', time[]]."', '$email', '$from', '$row->supplier_id', '$row->primary_email' ,'$row->secondary_email', '$subject', '$message_content', '1']"];

Là một nhà phát triển PHP/MySQL, bạn có một số thực tiễn đáng chú ý và sử dụng mọi thời điểm khác. Một trong những là làm thế nào để thoát khỏi báo giá đơn trong PHP trong khi làm việc với cơ sở dữ liệu MySQL. Trong bài viết này, tôi sẽ minh họa cách thoát khỏi trích dẫn đơn trong PHP/MySQLSingle Quote in PHP/MySQL

Thoát khỏi đề cập đến quá trình mã hóa dữ liệu chứa các ký tự để MySQL diễn giải chính xác. Để làm điều này, bạn phải thoát khỏi các chuỗi với chức năng PHP được gọi là mysql_real_escape_string. Điều này có nghĩa là bạn phải chạy chức năng này trong PHP trước khi chuyển truy vấn của bạn đến cơ sở dữ liệu. Thực tiễn tốt bình thường là thoát khỏi bất kỳ dữ liệu nào đi vào cơ sở dữ liệu của bạn từ một nguồn vĩnh cửu để tránh tiêm SQL tiềm năng.refers to the process of encoding data containing characters so that MySQL interprets it correctly. To do this, you MUST escape strings with a PHP function known as mysql_real_escape_string. This means that you have to run this function in PHP before passing your query to the database. Normal good practice is to escape any data that comes into your database from an eternal source so as to avoid potential SQL injection.

Bạn phải thoát dữ liệu của bạn & nbsp; trước & nbsp; bạn xây dựng truy vấn của mình. Ngoài ra, bạn có thể xây dựng truy vấn của mình theo chương trình bằng cách sử dụng các cấu trúc vòng lặp PHP và & NBSP; ________ 8:

Ví dụ 1: Sử dụng kiểu định hướng đối tượng

Trong khi sử dụng phương thức hướng đối tượng, bạn thoát khỏi các ký tự trong các chuỗi như hình dưới đây:

Bài Viết Liên Quan

Chủ Đề