sql >> Databáze >  >> RDS >> Mysql

CHOP s INSERT INTO prostřednictvím připravených výpisů

Měli byste to používat takto

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

Připravené příkazy se používají k dezinfekci vašich vstupů a k tomu můžete použít :foo bez jakékoli jednoduché uvozovky v rámci SQL k spojení proměnné a poté v execute() funkce, kterou předáte v asociativním poli proměnných, které jste definovali v příkazu SQL.

Můžete také použít ? místo :foo a pak předat pole pouze hodnot, které se zadají takto;

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

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

Oba způsoby mají své výhody i nevýhody. Osobně preferuji svázat názvy parametrů, protože je pro mě snazší číst.



  1. Použití PostgreSQL Logical Replication k udržení vždy aktuálního testovacího serveru pro čtení/zápis

  2. Vygenerujte náhodné datum v Oracle pomocí DBMS_RANDOM

  3. Jak povolit protokol dotazů MySQL?

  4. Jak převést řádky na sloupce v tabulce Oracle