sql >> Database >  >> RDS >> Mysql

BOB met INSERT INTO via voorbereide verklaringen

Je zou het zo moeten gebruiken

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

Voorbereide verklaringen worden gebruikt om uw invoer te zuiveren, en om dat te doen kunt u :foo gebruiken zonder alle enkele aanhalingstekens in de SQL om te binden variabelen, en dan in de execute() functie die u doorgeeft in een associatieve array van de variabelen die u in de SQL-instructie hebt gedefinieerd.

Je mag ook ? . gebruiken in plaats van :foo en geef dan een array door met alleen de waarden om zo in te voeren;

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

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

Beide manieren hebben hun voor- en nadelen. Persoonlijk geef ik er de voorkeur aan om de parameternamen te binden, omdat dit voor mij gemakkelijker te lezen is.



  1. AVG()-functie in MariaDB

  2. Kan ik een weergave maken met een parameter in MySQL?

  3. Duplicaat uit een tabel verwijderen

  4. Traceren inschakelen in oracle-apps r12