Mysqli_real_escape_string trả về chuỗi rỗng

Hàm real_escape_string[] / mysqli_real_escape_string[] thoát các ký tự đặc biệt trong chuỗi để sử dụng trong truy vấn SQL, có tính đến bộ ký tự hiện tại của kết nối

Hàm này được sử dụng để tạo một chuỗi SQL hợp pháp có thể được sử dụng trong câu lệnh SQL. Giả sử chúng ta có đoạn mã sau

Tôi đã vào máy chủ của mình và họ đã yêu cầu tôi xóa mysqli_real_escape_string và thay đổi mã php của tôi từ

 

// $address = mysqli_real_escape_string[$link, $_POST['address']];

 

đến

 

$address = $_POST['địa chỉ'];

 

vì các giá trị đang được trả về từ biểu mẫu của tôi sẽ bị trống

 

tôi đã xem xét các công việc sau đây xung quanh

 

http. // diễn đàn. phát minh. com/php-Development-5/mysql-real-escape-string-returning-empty-string-529228. html

 

 

nhưng sau khi xem trang web PHP, nó báo rằng mysql_escape_string không được dùng nữa và sẽ bị xóa ở phiên bản 6. [xem liên kết]

 

http. //php. net/thủ công/vi/chức năng. mysql-thoát-chuỗi. php

 

Bạn có thể tư vấn về một giải pháp thay thế để đảm bảo rằng dữ liệu sẽ được nhập vào mysql sẽ an toàn không.  

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

PHOD

Đăng ngày 19 tháng 11 năm 2009

PHOD

  • Thành viên mới
    • 9

  • Tác giả

    • Chia sẻ

Đăng ngày 19 tháng 11 năm 2009

làm ơn xem

 

http. //www. phpfreaks. com/diễn đàn/chỉ mục. php/chủ đề,277509. 0. html

 

để biết thêm thông tin

 

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

cags

Đăng ngày 19 tháng 11 năm 2009

cags

  • cựu nhân viên
    • 3. 2k
  • Địa điểm. Leicestershire, Vương quốc Anh

    • Chia sẻ

Đăng ngày 19 tháng 11 năm 2009

mysql_escape_string không được dùng nữa như bạn nói, sự thay thế được đề xuất là mysql_real_escape_string nhưng dù sao nó cũng không phù hợp trong trường hợp của bạn khi bạn làm việc với mysqli. Dịch vụ lưu trữ web của bạn có đề xuất rằng đó là một giải pháp lâu dài hay đó là một phương pháp để chẩn đoán?

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

PHOD

Đăng ngày 19 tháng 11 năm 2009

PHOD

  • Thành viên mới
    • 9

  • Tác giả

    • Chia sẻ

Đăng ngày 19 tháng 11 năm 2009

Này cags

 

máy chủ lưu trữ web của tôi đề xuất đây là giải pháp lâu dài, họ không đưa ra lý do cho việc này xảy ra, tôi nghĩ chính họ cũng không biết 

Nếu tôi làm theo những gì họ nói ở trên thì nó vẫn hoạt động nhưng điều này vẫn để lại

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

ác quỷ

Đăng ngày 19 tháng 11 năm 2009

ác quỷ

  • Các thành viên
    • 10

    • Chia sẻ

Đăng ngày 19 tháng 11 năm 2009

tôi viết trong OOP. Nhưng những gì tôi sử dụng là

 

$_ VARIABLE = $ELEMENT CALL->real_escape_string[$_ VARIABLE];

 

Điều đó hoạt động tốt

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

cags

Đăng ngày 19 tháng 11 năm 2009

cags

  • cựu nhân viên
    • 3. 2k
  • Địa điểm. Leicestershire, Vương quốc Anh

    • Chia sẻ

Đăng ngày 19 tháng 11 năm 2009

Cho dù được gọi theo thủ tục hay qua OOP sẽ không tạo ra bất kỳ sự khác biệt nào đối với hành vi. Trong hầu hết các trường hợp, việc gọi mysqli_real_escape_string phù hợp với mọi người. Chỉ là PHPOD [và một tỷ lệ nhỏ những người khác] đang/đang gặp sự cố vì một số lý do. Tôi đã có một vài ý tưởng về những gì có thể gây ra sự cố, nhưng mỗi lần tôi kiểm tra thông tin bổ sung thì nó đều như mong đợi/bắt buộc, không bỏ sót điều gì

 

Bạn có thể thử thay đổi mã của mình để sử dụng đối tượng mysqli thay vì gọi nó theo thủ tục, nhưng tôi không thấy nó hoạt động khác đi. Bạn cũng có thể thử sử dụng các hàm mysql_ thay vì các hàm mysqli_, nhưng một lần nữa, tôi không nghĩ rằng nó sẽ tạo ra bất kỳ sự khác biệt nào

 

Bạn đã kiểm tra xem máy chủ của mình đã bật magic_quotes chưa [phpinfo? Có lẽ việc cố thoát kép đang gây ra sự cố?

Chủ Đề