2009-05-01 35 views
6

Tôi thoát tất cả các tham số chuỗi tôi nhận được từ một hình thức php như thế này:mysql_real_escape_string() hoàn toàn loại bỏ chuỗi

$usr_name = mysql_real_escape_string($_REQUEST['usr_name']); 

để tránh một vài vấn đề với SQL Injection. Nhưng khi tôi chuỗi của tôi trở lại từ chức năng, tôi kết thúc với không có gì.

Ngoài ra tôi cứ bị cảnh báo kỳ lạ này trong nhật ký PHP của tôi:

PHP Warning: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: A link to the server could not be established in /hermes/bosweb/web279/b2798/ipw.bankingforms/public_html/formAckResponse_controller.php on line 39 

Người dẫn chương trình sử dụng: PHP Version 4.4.7

Trả lời

17

Từ PHP.net:

Lưu ý: Một MySQL kết nối là bắt buộc trước khi sử dụng mysql_real_escape_string() nếu không lỗi cấp E_WARNING là được tạo và trả lại FALSE. Nếu link_identifier không được xác định, kết nối MySQL cuối cùng được sử dụng .

Nói cách khác, bạn sẽ cần thiết để kết nối với cơ sở dữ liệu MySQL qua mysql_connect() hay mysql_pconnect() trước khi bạn có thể sử dụng chức năng này.

+0

Tôi đã biết làm điều này, nhưng không bao giờ biết tại sao, chính xác. Chức năng có chạy ở phía máy chủ cơ sở dữ liệu không? Hay đơn giản chỉ là giới hạn API? – ryandenki

+2

Nó chạy phía máy chủ, vì thoát của MySQL phụ thuộc vào bộ ký tự hiện đang được sử dụng bởi máy chủ. – hbw

+0

cảm ơn, đó là điều tốt để biết. – ryandenki

Các vấn đề liên quan