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