Hier ist das vollständige Beispiel Ihres Codes mit 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'],
));
Erklärung:
Prepared statements
wird verwendet, um Ihre Eingabe zu bereinigen, um SQL
zu verhindern Injektion. Sie können Ihren Wert ohne einfache oder doppelte Anführungszeichen in SQL
verwenden Anweisung zum Binden.
In Execute
Funktion können Sie ein Array für Ihre SQL statement
übergeben mit demselben Indexnamen.
Was ist der Grund, PDO oder mysqli_* anstelle von mysql_ zu verwenden: Weil die Erweiterung mysql_ veraltet und in PHP 7 nicht verfügbar ist.
Nebenbemerkung:
Ich weiß, dass @Rahautos bereits die Lösung für die Verwendung von MYSQL
bereitgestellt hat Standard-Date Format
('Y-m-d')
wie ich es in meiner execution
verwendet habe .