sql >> Databasteknik >  >> RDS >> Mysql

Exempel på parametriserade frågor

En parameteriserad fråga är i huvudsak en fråga som abstraherar bort all indata. Detta har flera goda bieffekter, som att göra all inmatning ofarlig (dvs. inga skadliga injektioner är möjliga) och att göra den snabbare när den används upprepade gånger, eftersom den är förberedd och kompilerad, så att motorn vet hur den givna inmatningen ska tillämpas. Ett exempel i ren mysql är:

PREPARE qry FROM "INSERT INTO tbl VALUES (?)";

Satsen är nu kompilerad och cachad och kan köras upprepade gånger utan att behöva kompilera och tolka den igen:

SET @var = "some input";
EXECUTE qry USING @var;
SET @var = "some other input";
EXECUTE qry USING @var;

När det används i PHP är det vanligtvis så här (förkortat):

$stmt = prepare('INSERT INTO tbl VALUES(?)');
execute($stmt, array("some input"));
execute($stmt, array("some other input"));
execute($stmt, array("some more input"));


  1. SQL Server Texttyp kontra varchar datatyp

  2. Kan flera primära nycklar finnas på ett enda bord?

  3. Hur jag skapar installationsprogram för webbplatsen. PHP mysql

  4. Hur man använder JDBC för att ansluta MySql-databas