Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL và PHP T_Variable không mong đợi

DỪNG LẠI

Chèn vào cơ sở dữ liệu trực tiếp từ bài viết luôn là một ý tưởng tồi. Đây là lý do mà PHP hiện đang mắc kẹt với những câu trích dẫn ma thuật rất thiếu trực quan.

Ít nhất bạn nên sử dụng mysql_real_escape_string () để thoát dữ liệu của mình. Ví dụ:

$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());

$query = "INSERT INTO users VALUES (
    '" . mysql_real_escape_string($_POST["username"]) . "',
    '" . mysql_real_escape_string($_POST["sha_pass_hash"]) . "',
    '" . mysql_real_escape_string($_POST["email"]) . "',
    '2'
)";

mysql_query($query);

Lý do bạn phải làm điều này là dựa trên bảo mật. Ví dụ:nếu một số độc hại đặt trường tên người dùng thành '); DROP TABLE users; mà không cần thoát dữ liệu của bạn trước. Cuối cùng bạn sẽ chạy một cách mù quáng truy vấn sau:

INSERT INTO users VALUES (''); DROP TABLE users;

Tất nhiên, điều nào sẽ không kết thúc tốt đẹp cho ứng dụng của bạn.

Đây là mức tối thiểu bạn nên làm.

Trên thực tế, bạn thực sự nên chuyển sang MySQLi Đây là một giao diện MySQL hiện đại hơn nhiều. Đây là một ví dụ

$mysqli = new mysqli('mysql_host', 'mysql_user', 'mysql_password', 'mysql_database');

$query = "INSERT INTO users VALUES (
    '" . $mysqli->real_escape_string($_POST["username"]) . "',
    '" . $mysqli->real_escape_string($_POST["sha_pass_hash"]) . "',
    '" . $mysqli->real_escape_string($_POST["email"]) . "',
    '2'
)";

$mysqli->query($query);

Bạn thậm chí có thể sử dụng MySQL theo kiểu thủ tục. Vì vậy, nếu lập trình hướng đối tượng chưa nằm trong tầm với của bạn, bạn sẽ không gặp vấn đề gì với MySQLi.

Hy vọng điều đó sẽ hữu ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiển thị các bản ghi đếm dữ liệu của một cột nhất định và tính tổng số tiền

  2. tạo bảng quan hệ trong mysql

  3. cách tốt nhất để lưu trữ mối quan hệ người dùng 1:1 trong cơ sở dữ liệu quan hệ

  4. Chèn dữ liệu XML vào bảng MySQL bằng PHP

  5. Phân tích cú pháp JSON trong MySQL