JavascriptProva

martedì 8 maggio 2018

Istruzioni preparate per il database MySqli in php.

Che cosa sono questi "comandi preparati" per il database in SQL?
Se io ho inserito i nomi dei sette nani con questa sintassi
$sql="INSERT INTO SetteNani(nome) VALUES('Pisolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Brontolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Cucciolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Eolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Dotto');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Gongolo');";
$sql.="INSERT INTO SetteNani(nome) VALUES('Mammolo')";

if($conn->multi_query($sql)===TRUE){
    echo "Tabella compilata";
}else{
    echo "Compilazione non effettuata";
}
posso farlo anche con un solo comando in cui cambio i parametri. Questo è quanto sono riuscito finora a capire.
Ecco, si fa proprio con la sintassi $conn->prepare. E poi con bind_param.

Proviamo un po'...

<?php

$servername = "localhost";
$username = "XXXX";
$password = "XXXX";
$database = "id3147737_questodatabase";

$conn=new mysqli($servername, $username, $password,$database);

if($conn->connect_error){
    die("Connessione non riuscita ".$conn->connect_error);
}
echo "Connessione riuscita
"; $stmt=$conn->prepare("INSERT INTO SetteNani(nome) VALUES(?)"); $stmt->bind_param("s",$nome); $nome="Brontolo"; $stmt->execute(); $nome="Pisolo"; $stmt->execute(); $conn->close(); ?>
Sì, ha funzionato!
Ci aggiungo gli altri:
$stmt=$conn->prepare("INSERT INTO SetteNani(nome) VALUES(?)");
$stmt->bind_param("s",$nomedelnano);

$nomedelnano="Cucciolo";
$stmt->execute();

$nomedelnano="Eolo";
$stmt->execute();

$nomedelnano="Dotto";
$stmt->execute();

$nomedelnano="Mammolo";
$stmt->execute();

$nomedelnano="Gongolo";
$stmt->execute();
Vediamo...

Perfetto!!!

Nessun commento:

Posta un commento