Đâ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 .