sql >> Database teknologi >  >> RDS >> Mysql

PDO med INSERT INTO gennem udarbejdede erklæringer

Du burde bruge det sådan

<?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',
]);

Forberedte udsagn bruges til at rense dit input, og for at gøre det kan du bruge :foo uden alle enkelte anførselstegn i SQL'en for at binde variabler, og derefter i execute() funktion, du sender i et associativt array af de variable, du definerede i SQL-sætningen.

Du kan også bruge ? i stedet for :foo og indsend derefter et array af kun værdierne til input som sådan;

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

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

Begge måder har deres fordele og ulemper. Jeg foretrækker personligt at binde parameternavnene, da det er nemmere for mig at læse.



  1. Sådan masseindsætter du kun nye rækker i PostreSQL

  2. MariaDB DAG() Forklaret

  3. PostgreSQL Tuning:Nøgle ting til at drive ydeevne

  4. cx_Oracle:Hvordan kan jeg modtage hver række som en ordbog?