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

Dữ liệu từ biểu mẫu PHP không được đăng lên mySQL

Đây là ví dụ đầy đủ về mã của bạn bằng cách sử dụng PDO :

$dbhost = "localhost";
$dbname = "llamabre_farms1";
$dbusername = "llamabre_visitor";
$dbpassword = "llama";

$link = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbusername,$dbpassword);

$statement = $link->prepare("
    INSERT INTO farmsdir 
    (name, owners, location, phone, email, website, description, dateadded, logo, state)
    VALUES(:fname, :sowners, :slocation, :sphone, :semail, 
    :swebsite, :sdescription, :dateadded, :logo, :state)
    ");

$statement->execute(array(
    "fname" => $_POST['name'],
    "sowners" => $_POST['owners'],
    "slocation" => $_POST['location'],
    "sphone" => $_POST['phone'],
    "semail" => $_POST['email'],
    "swebsite" => $_POST['website'],
    "sdescription" => $_POST['description'],
    "dateadded" => date('Y-m-d',strtotime($_POST['dateadded'])),
    "logo" => $_POST['logo'],
    "state" => $_POST['state'],
));

Giải thích:

Prepared statements được sử dụng để làm sạch đầu vào của bạn để ngăn chặn SQL tiêm. Bạn có thể sử dụng giá trị của mình mà không cần dấu ngoặc kép đơn hoặc kép trong SQL tuyên bố ràng buộc.

Trong Execute bạn có thể chuyển một mảng cho SQL statement của mình có cùng tên chỉ mục.

Lý do sử dụng PDO hoặc mysqli_ * thay vì mysql_ : là gì Vì tiện ích mở rộng mysql_ không được dùng nữa và không có sẵn trong PHP 7.

Ghi chú bên lề:

Tôi biết @Rahautos đã cung cấp giải pháp để sử dụng MYSQL chuẩn Date Format ('Y-m-d') như tôi đã sử dụng trong execution của mình .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Connector / python không hoạt động trong django

  2. Tạo ra nhiều giá trị có cùng tên cột trong cùng một bảng

  3. Mysql - Làm thế nào để tìm kiếm 26 bản ghi mà mỗi bản ghi bắt đầu bằng chữ cái trong bảng chữ cái?

  4. Lỗi Nhập - Không hỗ trợ bản địa hóa cho ngôn ngữ 'eng'

  5. Symfony:Bảng hoặc chế độ xem cơ sở đã tồn tại:1050 Bảng'igration_versions 'đã tồn tại