Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PDO mit INSERT INTO durch vorbereitete Anweisungen

Sie sollten es so verwenden

<?php
$dbhost = 'localhost';
$dbname = 'pdo';
$dbusername = 'root';
$dbpassword = '845625';

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

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (:fname, :sname, :age)');

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);

Vorbereitete Anweisungen werden verwendet, um Ihre Eingabe zu bereinigen, und dazu können Sie :foo verwenden ohne alle einfachen Anführungszeichen innerhalb der SQL zum bind Variablen und dann in execute() Funktion übergeben Sie ein assoziatives Array der Variablen, die Sie in der SQL-Anweisung definiert haben.

Sie können auch ? verwenden statt :foo und übergeben Sie dann ein Array mit nur den Werten, die so eingegeben werden sollen;

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (?, ?, ?)');

$statement->execute(['Bob', 'Desaunois', '18']);

Beide Wege haben ihre Vor- und Nachteile. Ich persönlich bevorzuge es, die Parameternamen zu binden, da es für mich einfacher zu lesen ist.