Domanda

Che cosa è una query con parametri, e quale sarebbe un esempio di tale una query in PHP e MySQL?

È stato utile?

Soluzione

Una query con parametri (noto anche come dichiarazione preparata ) è un mezzo di pre-compilazione di un'istruzione SQL in modo che tutto ciò che serve per la fornitura sono i "parametri" (si pensi "variabili") che necessità di essere inserito nella dichiarazione per essere eseguito. E 'comunemente usato come un mezzo per prevenire SQL attacchi .

Si può leggere di più su questi su di PHP DOP pagina (DOP essendo uno strato di astrazione del database), anche se si può anche fare uso di loro se si sta utilizzando l'interfaccia di database mysqli (vedere la preparare documentazione).

Altri suggerimenti

Questa è una spiegazione chiara e concisa di ciò che è, e come funziona. Come e perché utilizzare parametrizzazione

Essential il processo coinvolge il server di pre-elaborazione della richiesta senza parametri in modo che conosce il tipo di query è. Così, per esempio una query SELECT è solo una query SELECT, e non può essere concatenato da un (variabile richiesta) il parametro di essere una SELECT / goccia o qualche altra iniezione di MySql. Invece i dati di iniezione saranno solo i dati di stringa nel campo del parametro.

A parametrizzata query è una query in cui segnaposti si utilizzano per i parametri ed i valori dei parametri vengono forniti al momento dell'esecuzione.

Perché l'uso query con parametri

  1. Il più importante motivo per utilizzare query con parametri è quello di evitare gli attacchi SQL injection.
  2. In secondo luogo interrogazione parametrizzata si prende cura di scenario in cui query SQL potrebbe non riuscire per esempio inserimento di O'Baily in un campo. maniglie query con parametri quali query senza costringere a sostituire le virgolette singole con doppi apici singoli.

Questa affermazione è una delle caratteristiche del sistema di database in cui stessa istruzione SQL eseguito ripetutamente con alta efficienza. Le istruzioni preparate sono un tipo di modello e utilizzato dall'applicazione con parametri diversi. Riferimento Articolo

Database di sistema può eseguire la stessa istruzione SQL senza fare il parsing, la compilazione e l'ottimizzazione più e più volte per lo stesso tipo di istruzione SQL.

È possibile scrivere o creare dichiarazione preparata in MySQL, ma questo non è un modo efficiente, perché il protocollo binario attraverso un API dichiarazione preparata è meglio.

Ma ancora è possibile scrivere e anche questo non richiede alcuna altra programmazione è possibile scrivere direttamente in SQL. È possibile utilizzare una dichiarazione preparata per MySQL Client program.You può anche utilizzare una dichiarazione preparata in una stored procedure per l'approccio dinamico SQL.

Create dichiarazione preparata in MySQL: viene preso di riferimento da questo articolo

PREPARE TestStmt FROM 
'SELECT * FROM Test 
WHERE TestNumber=?';

È possibile utilizzare il codice PHP per gestire dichiarazione preparata attraverso la sua API o il gestore a livello di JDBC.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top