Voici l'exemple complet de votre code en utilisant 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'],
));
Explication :
Prepared statements
est utilisé pour nettoyer votre entrée pour empêcher SQL
injection.Vous pouvez utiliser votre valeur sans guillemet simple ou double en SQL
déclaration pour la liaison.
Dans Execute
fonction, vous pouvez passer un tableau pour votre SQL statement
avec le même nom d'index.
Quelle est la raison d'utiliser PDO ou mysqli_* au lieu de mysql_ : Parce que l'extension mysql_ est obsolète et n'est pas disponible dans PHP 7.
Remarque :
Je sais que @Rahautos a déjà fourni la solution pour utiliser MYSQL
Date Format
standard ('Y-m-d')
comme je l'ai utilisé dans mon execution
.