Computer finestre Internet

Usando mysql in php. Le basi per lavorare con MySQL in PHP. Connessione al database MySQL

MySQL è un tipo di database relazionale. MySQL è un server a cui possono connettersi vari utenti.

Quando ti connetti a Internet, inserisci il tuo nome utente e password, oltre al nome del server a cui ti stai connettendo? Lo stesso sistema viene utilizzato quando si lavora con MySQL.

Un altro punto: cos'è un database relazionale? Relazionale significa basato su tabelle. Il famoso editor di fogli di calcolo di Microsoft Excel è in realtà un editor di database relazionali.

Connessione a MySQL Server

PHP utilizza la funzione mysqli_connect() per connettersi al server MySQL. Questa funzione accetta tre argomenti: nome del server, nome utente e password.

La funzione mysqli_connect() restituisce l'identificatore di connessione, è memorizzato in una variabile e successivamente utilizzato per lavorare con i database.

Codice di connessione al server MySQL:

$ link = mysqli_connect ("localhost", "root", "");

In questo caso, sto lavorando sulla mia macchina locale su Denwere, quindi il nome host è localhost, il nome utente è root e non esiste una password.

La connessione deve anche essere chiusa dopo aver finito di lavorare con MySQL. La funzione mysqli_close() viene utilizzata per chiudere la connessione. Estendendo l'esempio:

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_close ($ collegamento);

Qui abbiamo verificato la verità sull'identificatore della connessione, se qualcosa non va nella nostra connessione, il programma non verrà eseguito, la funzione die() interromperà la sua esecuzione e visualizzerà un messaggio di errore nel browser.

Errori di connessione

Le seguenti funzioni vengono utilizzate per verificare la connessione:

  • mysqli_connect_errno () - Restituisce il codice di errore dell'ultimo tentativo di connessione. Restituisce zero se non ci sono errori.
  • mysqli_connect_error () - Restituisce una descrizione dell'ultimo errore durante la connessione al server MySQL.
define ("HOST", "localhost"); define ("DB_USER", "root"); define ("DB_PASSWORD", ""); definire ("DB", "tester"); $ link = mysqli_connect (HOST, DB_USER, DB_PASSWORD, DB); / * controlla la connessione * / if (mysqli_connect_errno ()) (printf ("Impossibile connettersi:% s \ n", mysqli_connect_error ()); exit ();) else (printf ("Impossibile connettersi:% s \ n ", mysqli_get_host_info ($ link));)

Mysqli_get_host_info() restituisce una stringa contenente il tipo di connessione utilizzato.

Inoltre, tieni presente che utilizzando il comando define ho salvato tutti i parametri di connessione in costanti. Quando si scrivono progetti di grandi dimensioni e ci saranno molti file collegati al server MySQL, è conveniente memorizzare i parametri di connessione in un file separato e inserirlo utilizzando la funzione include o require.

Selezione del database

Ci possono essere più database su un server MySQL. Prima di tutto, dobbiamo scegliere la base di cui abbiamo bisogno per lavorare. PHP ha un parametro in più per questo nella funzione mysqli_connect() - il nome del database.

L'ho creato sul mio computer tramite phpMyAdmin denominato tester. Ci colleghiamo ad esso:

$ link = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); mysql_close ($ collegamento);

Quindi, abbiamo scelto un database con cui lavorare. Ma come sappiamo, un database relazionale è costituito da tabelle e il nostro database non ha ancora tabelle. Il database viene creato vuoto, senza tabelle. Le tabelle devono essere aggiunte separatamente. Aggiungiamo una tabella usando PHP.

Crea una tabella

Nel nome dei database MySQL, la parte SQL sta per Structured Query Language, che si traduce come linguaggio di query strutturato. Scriveremo query in SQL e le invieremo al server MySQL dal programma PHP.

Per creare una tabella, è sufficiente specificare il comando CREATE TABLE. Creiamo una tabella denominata utenti nelle cui colonne verranno memorizzati i login (colonna login) e le password (colonna password) degli utenti.

$ query = "CREATE TABLE utenti (login VARCHAR (20), password VARCHAR (20))";

In questo codice abbiamo assegnato alla variabile $ query una stringa di testo che rappresenta una query SQL. Creiamo una tabella denominata utenti che contiene due colonne login e password, entrambe con tipo di dati VARCHAR (20). Parleremo più avanti dei tipi di dati, per ora mi limiterò a notare che VARCHAR (20) è una stringa con una lunghezza massima di 20 caratteri.

Per inviare la nostra query al server MySQL utilizziamo la funzione PHP mysqli_query(). Questa funzione restituisce un numero positivo se l'operazione è andata a buon fine e falso se si è verificato un errore (la sintassi della richiesta non è corretta o il programma non ha i permessi per eseguire la richiesta).

$ link = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); $ query = "CREATE TABLE utenti (login VARCHAR (20), password VARCHAR (20))"; mysqli_query ($ query); mysqli_close ($ collegamento);

La query SQL non ha bisogno di essere scritta su una variabile, può essere scritta direttamente come argomento della funzione mysql_query(). È solo che il codice sembra più leggibile.

Questo script ha uno svantaggio: non invia nulla al browser. Aggiungiamo un messaggio:

$ link = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); $ query = "CREATE TABLE utenti (login VARCHAR (20), password VARCHAR (20))"; if (mysqli_query ($ query)) echo "La tabella è stata creata."; else echo "La tabella non è stata creata."; mysqli_close ($ collegamento);

Se eseguiamo nuovamente questo script per l'esecuzione, vedremo un messaggio nel browser: "La tabella non è stata creata". Il fatto è che la tabella è stata creata al primo avvio ed è impossibile ricreare la tabella con lo stesso nome. Ci troviamo di fronte a una situazione di errore, quindi è il momento di parlare della gestione degli errori quando si lavora con MySQL.

Errore nell'elaborazione

Durante il debug di un programma, potremmo aver bisogno di informazioni precise sull'errore. Quando si verifica un errore in MySQL, il server del database imposta il numero di errore e una stringa che descrive l'errore. PHP ha funzioni speciali per accedere a questi dati.

  • mysqli_errno () - Restituisce il numero di errore.
  • mysqli_error() - Restituisce una stringa che descrive l'errore.

Ora aggiungiamo la funzione mysql_error() al nostro script:

$ link = mysql_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); $ query = "CREATE TABLE utenti (login VARCHAR (20), password VARCHAR (20))"; if (mysqli_query ($ query)) echo "La tabella è stata creata."; else echo "Tabella non creata:" .mysqli_error (); mysqli_close ($ collegamento);

Ora il nostro script restituirà la riga al browser: "La tabella non è stata creata: la tabella" utenti "esiste già".

Eliminare un tavolo

Quindi, ora abbiamo un tavolo che non ci serve. È ora di imparare come eliminare le tabelle dal database.

Per eliminare una tabella, utilizzare il comando DROP TABLE seguito dal nome della tabella.

$ link = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); $ query = "UTENTI DROP TABLE"; if (! mysqli_query ($ query)) echo "Errore durante l'eliminazione della tabella:" .mysqli_error (); else echo "La tabella è stata cancellata."; mysqli_close ($ collegamento);

Risultati

Quindi, abbiamo imparato le basi di MySQL. Cosa abbiamo imparato a fare:

  • Connettiti al database MySQL usando la funzione mysqli_connect().
  • Chiudere la connessione al server MySQL utilizzando la funzione mysqli_close().
  • Invia query SQL al server MySQL utilizzando la funzione mysqli_query().
  • Abbiamo imparato la query SQL per creare una tabella: create table.
  • Abbiamo imparato la query SQL per eliminare una tabella: drop table.
  • Abbiamo imparato a gestire gli errori utilizzando le funzioni mysqli_errno() e mysqli_error().

Quindi daremo un'occhiata più da vicino ai tipi di dati MySQL.

Leggiamo la seguente lezione:

Ho chiamato la mia base "phptest". Dopo aver cliccato sul pulsante "Crea", dovresti essere trasferito automaticamente al database che hai creato.

Crea una tabella nel database

Non c'è niente di complicato neanche in questa procedura. Creiamo una tabella in cui memorizzeremo il titolo dei nostri articoli e il testo stesso:

Come puoi vedere nel numero di campi ho messo il numero 3, perché? Dopotutto, dobbiamo creare due campi, uno per il titolo e il testo. Il punto è che la tabella nel database deve avere un campo aggiuntivo. Per quello? Questo campo è un numero di identificazione sequenziale (ovvero, contiamo le nostre righe nella tabella), quindi otteniamo un numero univoco per ogni riga della tabella. Questo è utile per trovare la stringa di cui abbiamo bisogno nel database. Questo campo è solitamente chiamato id ed è esposto ad esso INCREMENTO AUTOMATICO(Mostrerò di seguito dove è esposto). AUTO_INCREMENT ti permette di assegnare un numero univoco ad ogni riga, quindi non troverai un record con lo stesso numero nella tabella del database!

dopo aver compilato il nome e il numero di campi, premere "OK" si arriva alla pagina per la creazione dei campi. Te lo confesso, non capisco bene cosa sto facendo quando creo i campi, ma questo non mi impedisce di lavorarci.Compila così:

E compila i due campi che ci servono:

Perché solo due? Perché il primo campo ID verrà compilato automaticamente da AUTO_INCREMENT. Fare clic su "OK". Ora nella scheda "Panoramica" puoi vedere la linea che abbiamo creato nella tabella:

Bene, abbiamo imparato come creare tabelle e righe attraverso il pannello phpmyadmin, questo è già un progresso A proposito, voglio notare che l'interfaccia di questo pannello è intuitiva, puoi facilmente premere i pulsanti lì e capire cosa è cosa

È tempo di imparare come creare elimina e aggiorna le righe nelle tabelle create usando php. Per farti percepire meglio quello che ti sto dicendo, scriveremo un piccolo pannello di amministrazione del sito e, strada facendo, ti dirò cosa e come.

Output dei record dal database

Iniziamo con questo, poiché quando crei un progetto, devi vedere chiaramente il processo e senza output è molto difficile da fare (lavorerò con il file test.php, non sorprenderti quando vedrai i collegamenti a questo file nel codice). Come ci ritireremo? Bene, prima dobbiamo connetterci al database, dopo il ciclo do while (Learn PHP - Loops) estrarremo i record dal database. Iniziamo

  • Connessione al database

Come avviene il collegamento? Attenzione alla sintassi:

mysql_select_db (nome DB, mysql_connect (Server, nome utente DB, password utente DB));

Il nome del database, l'utente del server e la password sono creati da te o forniti dal tuo hoster. Nell'esempio di un server locale, crei tu stesso alcuni dati o utilizzi quelli già creati. Ecco come appariranno le connessioni al database che ho creato:






// CONNESSIONE AL DATABASE (DB)

Il server, l'utente e la password sono stati creati di default (in questo caso possiamo dire che quasi tutti i dati ci vengono forniti dall'hoster). Dai miei dati, ho indicato solo il nome del database. A proposito, questo è codice php, e quindi deve essere tra parentesi speciali ()

  • Uscita dati

Abbiamo bisogno di visualizzare i dati dalla tabella delle pagine. Attenzione alla sintassi dell'output:

$ risultato = mysql_query ("SELECT Per estrarre il nome della tabella FROM nel database");

La prima riga ci consente di specificare quali colonne dobbiamo estrarre e da quale database.

La seconda riga mette tutto ciò che trova in una variabile ...

ATTENZIONE ci sono un paio di punti che vorrei chiarire. Risolviamo diversi problemi:

  • Dobbiamo estrarre tutti i campi dalla tabella.

Come estraggo tutti i campi dalla tabella delle pagine? come questo:

$ risultato = mysql_query ("SELECT * FROM pagina");
$ myrow = mysql_fetch_array ($ risultato);

Potresti aver notato che ho messo un asterisco (*) dopo SELECT. Un asterisco significa che devo estrarre tutti i campi della tabella

  • Abbiamo solo bisogno di estrarre un campo dalla tabella

Come estrarre solo il campo di testo dalla tabella? come questo:

$ risultato = mysql_query ("SELECT text FROM page");
$ myrow = mysql_fetch_array ($ risultato);

Per estrarre non tutti i campi, ma solo alcuni, è necessario elencare i campi obbligatori dopo SELECT separati da virgole.

  • Dobbiamo estrarre i campi non da tutte le tabelle, ma solo da una riga

Come ottengo tutti i campi dalla prima riga? Sappiamo che la prima riga ha un id uguale a uno, usiamo questa conoscenza:

Dopo SELECT, ho spiegato quali campi devono essere estratti, separati da virgole, quindi ho aggiunto una nuova riga WHERE (che significa "dove") id è 1. Pertanto, estraggo i campi di cui ho bisogno dalla riga in cui id è uno

Bene, iniziamo a creare l'output dei nostri articoli? Mostreremo solo le intestazioni, iniziamo:


$ myrow = mysql_fetch_array ($ risultato);

fare
{
echo "". $ miariga. "
";
}

Cosa abbiamo fatto? Abbiamo estratto due campi dalla tabella, id e title. Successivamente, abbiamo avviato il ciclo do while (Learning PHP - Loops) e creato i collegamenti, utilizzando i dati estratti dal database. I dati sono memorizzati nella variabile $ myrow, questa variabile è un array, le chiavi dell'array sono i nomi dei nostri campi nel database. Ecco cosa è successo:

C'è un output di intestazioni, ora organizziamo l'output di messaggi completi quando fai clic su un collegamento con un'intestazione. Per fare ciò in un file, aggiungi le condizioni if ​​() ():

// CONNESSIONE AL DATABASE (DB)
$ nameDB = "phptest"; // Nome del database
$ nameSERVER = "localhost"; // Server
$ nameUSER = "root"; // Nome utente del database
$ passUSER = ""; // Password utente del database
mysql_select_db ($ nameDB, mysql_connect ($ nameSERVER, $ nameUSER, $ passUSER));
// CONNESSIONE AL DATABASE (DB)

// INTESTAZIONI DISPLAY
if (! isset ($ _ GET ["id"]))
{
$ risultato = mysql_query ("SELECT id, titolo FROM pagina");
$ myrow = mysql_fetch_array ($ risultato);

fare
{
echo "". $ miariga. "
";
}
while ($ myrow = mysql_fetch_array ($ risultato));
}
// INTESTAZIONI DISPLAY

// VISUALIZZARE IL TESTO COMPLETO
if (isset ($ _ GET ["id"]))
{

$ myrow = mysql_fetch_array ($ risultato);

echo $ miariga;
}
// VISUALIZZARE IL TESTO COMPLETO
?>

Ho aggiunto due condizioni. Vedremo la lista con le intestazioni solo se la variabile globale $ _GET ["id"] non esiste. Vedremo il testo completo solo se questa variabile esiste. In questo caso, mostreremo solo un record di cui abbiamo bisogno dal database. Ecco cosa abbiamo ottenuto:

Ora penso che sia il momento di imparare come aggiungere nuove righe alla tabella.

Aggiunta di dati al database

Inizieremo ad aggiungere creando un modulo, ecco un pezzo di codice che deve essere aggiunto alla fine del nostro file:

// FORM AGGIUNGI RECORD
if (isset ($ _ GET ["aggiungi"]))
{
eco "







";
}
// FORM AGGIUNGI RECORD

Questo form apparirà solo se ci sarà una variabile globale $ _GET ["add"], quindi dove-thread in fondo devi inserire un link per aggiungere un nuovo articolo. Il modo migliore per farlo è nel codice di output dell'intestazione, puoi anche modificare la condizione per l'output delle nostre intestazioni in questo modo:

// INTESTAZIONI DISPLAY
if (! isset ($ _ GET ["id"]) AND! isset ($ _ GET ["add"]))
{
$ risultato = mysql_query ("SELECT id, titolo FROM pagina");
$ myrow = mysql_fetch_array ($ risultato);

fare
{
echo "". $ miariga. "
";
}
while ($ myrow = mysql_fetch_array ($ risultato));

eco "


Aggiungi messaggio ";
}
// INTESTAZIONI DISPLAY

Ho modificato la condizione in modo che l'elenco delle intestazioni non appaia quando viene visualizzato il modulo, questo è quello che è successo:

$ risultato = mysql_query ("INSERT INTO database table name (DB field 1, DB field 2) VALUES (" data 1 "," data 2 ")");

Ora scriveremo un gestore per il nostro mini pannello di amministrazione e capirai tutto. Ecco un pezzo di codice che ho postato subito dopo essermi connesso al database:

// AGGIUNGI RECORD

{

intestazione ("posizione: test.php");
Uscita;
}
// AGGIUNGI RECORD

La condizione è la variabile globale $ _POST, ovvero, se compiliamo il modulo, facciamo clic sul pulsante "Aggiungi post", quindi verrà attivata la nostra condizione. Il campo del titolo conterrà i dati della variabile globale $ _POST e il campo di testo - $ _POST. Successivamente, funzionerà la riga di intestazione ("location: test.php") che consente di reindirizzare l'utente a un'altra pagina, in questo caso questa pagina sarà test.php. E l'uscita della linea; interrompe l'esecuzione di altri script. Ecco cosa è successo:

Modifica dei dati nel database

Per modificare un record specifico nel nostro database, dobbiamo naturalmente determinare quale record deve essere modificato ... Propongo di visualizzare il pulsante di modifica nel codice di output full-text, modifichiamolo:

// VISUALIZZARE IL TESTO COMPLETO
if (isset ($ _ GET ["id"]))
{
$ risultato = mysql_query ("SELECT text FROM page WHERE id =" $ _ GET "");
$ myrow = mysql_fetch_array ($ risultato);

echo $ miariga;
eco "


Modifica post ";
}
// VISUALIZZARE IL TESTO COMPLETO


if (isset ($ _ GET ["edd"]))
{

$ myrow = mysql_fetch_array ($ risultato);

Eco "








";
}
// MODULO MODIFICA RECORD

Ho aggiunto questo pezzo di codice dopo il modulo di aggiunta record. Questo modulo è quasi uguale all'aggiunta di post. Come avrai notato, ho ridisegnato gli attributi del nome e aggiunto un attributo del valore. In questo attributo inserisco i dati che ho estratto dal database. C'è anche un campo invisibile qui. È necessario per inviare l'identificatore del record al file del gestore.

Ora, in modo che quando questo modulo viene visualizzato sullo schermo non ci sia un elenco di intestazioni, correggeremo la condizione:

// INTESTAZIONI DISPLAY

{
$ risultato = mysql_query ("SELECT id, titolo FROM pagina");
$ myrow = mysql_fetch_array ($ risultato);

fare
{
echo "". $ miariga. "
";
}
while ($ myrow = mysql_fetch_array ($ risultato));

eco "


Aggiungi messaggio ";
}
// INTESTAZIONI DISPLAY

È tempo di scoprire come vengono modificati i record nel database. Ecco la sintassi:

Ora scriviamo il gestore. Ecco un pezzo di codice che ho aggiunto subito dopo l'aggiunta del gestore di record:

// MODIFICA RECORD

{

intestazione ("posizione: test.php");
Uscita;
}
// MODIFICA RECORD

Per condizione, si può vedere che il gestore verrà lanciato solo se abbiamo cliccato sul pulsante "modifica post". Segue l'aggiornamento del database. Nel campo del titolo inseriremo il valore della variabile globale $ _POST e nel campo di testo - $ _POST. Modificheremo la riga il cui id è uguale alla variabile globale $ _POST. Quindi reindirizziamo l'utente all'elenco delle intestazioni:

Eliminazione di record dal database

Bene, l'ultima cosa che ci rimane da imparare è la cancellazione .. È più semplice di tutte le altre, quindi presta attenzione alla sintassi:

Per eliminare alcuni record, è necessario inserire un collegamento da qualche parte nel thread con il quale l'utente può eliminare alcuni record ... inseriamo questo collegamento nell'output del testo completo del post:

// VISUALIZZARE IL TESTO COMPLETO
if (isset ($ _ GET ["id"]))
{
$ risultato = mysql_query ("SELECT text FROM page WHERE id =" $ _ GET "");
$ myrow = mysql_fetch_array ($ risultato);

echo $ miariga;
eco "


Modifica post ";
eco "
Elimina messaggio ";
}
// VISUALIZZARE IL TESTO COMPLETO

Risultato del lavoro

Ecco il codice completo per il post di oggi:

// CONNESSIONE AL DATABASE (DB)
$ nameDB = "phptest"; // Nome del database
$ nameSERVER = "localhost"; // Server
$ nameUSER = "root"; // Nome utente del database
$ passUSER = ""; // Password utente del database
mysql_select_db ($ nameDB, mysql_connect ($ nameSERVER, $ nameUSER, $ passUSER));
// CONNESSIONE AL DATABASE (DB)

// AGGIUNGI RECORD
if (isset ($ _ POST ["title_post"]) AND isset ($ _ POST ["text_post"]))
{
$ risultato = mysql_query ("INSERT INTO page (title, text) VALUES (" $ _POST "," $ _ POST ")");
intestazione ("posizione: test.php");
Uscita;
}
// AGGIUNGI RECORD

// MODIFICA RECORD
if (isset ($ _ POST ["title_post_edd"]) AND isset ($ _ POST ["text_post_edd"]))
{
$ risultato = mysql_query ("AGGIORNA SET pagina titolo =" (! LANG: $ _ POST", text="$_POST" WHERE id="$_POST"");!}
intestazione ("posizione: test.php");
Uscita;
}
// MODIFICA RECORD

// CANCELLA RECORD
if (isset ($ _ GET ["del"]))
{
$ risultato = mysql_query ("DELETE FROM page WHERE id =" $ _ GET "");
intestazione ("posizione: test.php");
Uscita;
}
// CANCELLA RECORD

// INTESTAZIONI DISPLAY
if (! isset ($ _ GET ["id"]) AND! isset ($ _ GET ["add"]) AND! isset ($ _ GET ["edd"]))
{
$ risultato = mysql_query ("SELECT id, titolo FROM pagina");
$ myrow = mysql_fetch_array ($ risultato);

fare
{
echo "". $ miariga. "
";
}
while ($ myrow = mysql_fetch_array ($ risultato));

eco "


Aggiungi messaggio ";
}
// INTESTAZIONI DISPLAY

// VISUALIZZARE IL TESTO COMPLETO
if (isset ($ _ GET ["id"]))
{
$ risultato = mysql_query ("SELECT text FROM page WHERE id =" $ _ GET "");
$ myrow = mysql_fetch_array ($ risultato);

echo $ miariga;
eco "


Modifica post ";
eco "
Elimina messaggio ";
}
// VISUALIZZARE IL TESTO COMPLETO

// FORM AGGIUNGI RECORD
if (isset ($ _ GET ["aggiungi"]))
{
eco "







";
}
// FORM AGGIUNGI RECORD

// MODULO MODIFICA RECORD
if (isset ($ _ GET ["edd"]))
{
$ risultato = mysql_query ("SELECT * FROM pagina WHERE id =" $ _ GET "");
$ myrow = mysql_fetch_array ($ risultato);

Eco "








";
}
// MODULO MODIFICA RECORD
?>

Conclusione

Il materiale si è rivelato piuttosto complicato. Ma! Potresti aver notato che ho usato solo le informazioni che ho fornito in precedenza. Ciò significa che con questa conoscenza, puoi creare i progetti più semplici in php! Se hai imparato tutto questo, puoi dichiarare con orgoglio di essere un programmatore principiante! Bene, ora puoi iniziare a creare il tuo primo cms. Se hai domande, e molto probabilmente ci sono, chiedi, ti aiuterò il più possibile! Buona fortuna, ho tutto per oggi!

P.S.: Cos'è un file mdf? Come aprirlo? Come lo apro? È possibile rispondere a queste e a molte domande su voprosi4ek.ru

Abbiamo imparato a connetterci al server MySQL, abbiamo scelto un database con cui lavorare, abbiamo imparato la funzione PHP di inviare query al server MySQL, abbiamo imparato due semplici query (creazione ed eliminazione di una tabella) e abbiamo imparato a chiudere la connessione.

Ora approfondiremo le query MySQL. Quindi iniziamo!

Creazione di una tabella - CREA TABELLA

Ora abbiamo un database vuoto, non ci sono tabelle al suo interno. Quindi creiamo prima una tabella. Sappiamo già come farlo dalla prima parte.

Ecco il codice dello script che creerà la piastra di cui abbiamo bisogno:

$ link = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); $ query = "CREATE TABLE utenti (login VARCHAR (20), password VARCHAR (20))"; if (mysqli_query ($ link, $ query)) echo "La tabella è stata creata."; else echo "Tabella non creata:" .mysqli_error (); mysqli_close ($ collegamento);

Ci sono solo due campi nella nostra tabella: login e password. Per ora non ci serve altro, non complichiamo il processo.

Quindi, la tabella è stata creata.

Aggiunta di righe (record) a una tabella - INSERT

Puoi aggiungere una nuova riga a una tabella utilizzando il comando di inserimento SQL. Ecco un esempio:

$ link = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); $ query = "INSERT INTO utenti (login, password) VALUE (" zeus "," pass123 ")"; if (mysqli_query ($ link, $ query)) echo "L'utente è stato aggiunto."; else echo "Nessun utente aggiunto:". mysqli_error (); mysqli_close ($ collegamento);

La query SQL consiste nel comando INSERT INTO, il nome del database degli utenti, quindi i nomi dei campi tra parentesi, quindi la parola VALUE, seguita dai valori aggiunti tra parentesi. I valori sono citati.

La sintassi per la richiesta è simile a questa:

INSERT INTO nome_tabella (colonna1, colonna2) VALUE ("x1", "x2")

Le virgolette nella seconda parentesi sono obbligatorie.

Le variabili possono essere al posto dei valori. Ecco un esempio:

$ link = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); $ login = "zeus"; $ password = "pass123"; $ query = "INSERT INTO utenti (login, password) VALUE (" $ login "," $ password ")"; if (mysqli_query ($ link, $ query)) echo "L'utente è stato aggiunto."; else echo "Nessun utente aggiunto:". mysqli_error (); mysqli_close ($ collegamento);

Ovviamente questo esempio ha poco senso. Può essere utile per i principianti sapere che questo è il modo in cui i login e le password forniti dagli utenti durante la registrazione vengono registrati nel database. Questi dati vengono memorizzati in variabili, quindi, dopo la verifica, vengono scritti nel database.

Esiste un modo rapido per inserire più righe con una query INSERT:

INSERIRE NEGLI utenti (login, password) VALUE ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

Come puoi vedere, i dati enumerati sono semplicemente separati da virgole.

Quindi, usando il comando INSERT, abbiamo imparato come aggiungere record a una tabella. Vai avanti.

Vista tabella: comando SELECT

Ora abbiamo una tabella utenti con righe. Lo script precedente può essere eseguito più volte e ogni volta aggiungerà una riga alla tabella. Ora potremmo non sapere quante righe abbiamo nella tabella. E voglio sapere cosa c'è scritto dentro.

Per recuperare i dati da una tabella, utilizzare il comando SQL SELECT. Il segno * significa che stiamo richiedendo tutti i dati, quindi dopo la parola FROM scriviamo il nome della tabella da cui vogliamo ottenere i dati.

Interroga tutti i dati dalla tabella utenti:

$ link = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); $ query = "SELEZIONA * DA utenti"; $ risultato = mysqli_query ($ link, $ query); if (! $ risultato) echo "Si è verificato un errore:". mysqli_error (); else echo "Dati ricevuti"; mysqli_close ($ collegamento);

La funzione mysqli_query() ci ha restituito l'identificatore del risultato della query: lo inseriamo in una variabile e in futuro lavoreremo con esso utilizzando altre funzioni PHP.

Numero di record nella richiesta

Scopriamo quante righe ci sono nella nostra query? Ho eseguito personalmente lo script per aggiungere un record alla tabella, non ricordo quante volte e ora non so quante righe ci sono nella mia tabella.

La funzione mysqli_num_rows() viene utilizzata per determinare il numero di righe nel risultato della query. A questa funzione viene passato l'identificatore del risultato della query e restituirà il numero di record.

$ link = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Errore"); $ query = "SELEZIONA * DA utenti"; $ risultato = mysqli_query ($ link, $ query); if (! $ risultato) echo "Si è verificato un errore:". mysqli_error (); else echo "Dati ricevuti"; $ count = mysqli_num_rows ($ risultato); echo "Righe totali nella tabella: $ count."; mysqli_close ($ collegamento);

Se abbiamo bisogno di scoprire il numero di record in una tabella, il metodo indicato non è il più adatto. Qui abbiamo scoperto il numero di record trovati nella query, ma il numero di record nella tabella viene cercato in modo diverso.

Numero di record nella tabella SELECT COUNT (*)

Per scoprire il numero di record in una tabella, puoi utilizzare il comando SELECT COUNT (*) FROM nome_tabella.

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_select_db ("tester"); $ query = "SELEZIONA * DA utenti"; $ risultato = mysqli_query ($ link, $ query); if (! $ risultato) echo "Si è verificato un errore:". mysqli_error (); else echo "Dati ricevuti."; $ count = mysqli_fetch_row ($ risultato); echo "Righe totali nella tabella: $ count."; mysqli_close ($ collegamento);

Nota che qui abbiamo usato la nuova funzione PHP mysqli_fetch_row() per recuperare i dati. Questa funzione restituisce una riga del risultato della query sotto forma di un semplice array, nel nostro caso c'è un campo nella riga e ha indice 0.

Visualizzazione del risultato di una query in un ciclo

Dopo aver eseguito una query SQL con un comando SELECT e ottenuto l'identificatore del risultato della query, PHP crea un puntatore interno nel recordset del risultato. Questo puntatore si sposta automaticamente al record successivo dopo aver fatto riferimento al record corrente. Questo meccanismo semplifica il ciclo del set di risultati di una query SELECT.

PHP ha diverse funzioni che possono essere utilizzate per ottenere un array di campi per ogni riga della query risultante. Prendiamo come esempio la funzione mysqli_fetch_row(). A questa funzione viene passato l'ID richiesta e restituisce un array. Quindi nel ciclo viene scansionato l'intero risultato della query; al raggiungimento della fine del risultato della query, la funzione restituirà false.

Quindi, interroghiamo tutti i dati dalla tabella utenti (SELECT * FROM utenti).


"; while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Login: $ riga. Password: $ riga.
";) mysqli_close ($ link);

Mysqli_fetch_row() restituisce un semplice array. Ad ogni iterazione del ciclo, riceveremo un array con una riga della tabella, ai cui campi possiamo accedere specificando un indice numerico.

Lo stesso può essere fatto usando la funzione mysql_fetch_assoc(), restituisce un array associativo.

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_select_db ("tester"); $ risultato = mysqli_query ($ link, "SELECT * FROM utenti"); if (! $ risultato) echo "Si è verificato un errore:". mysqli_error (); else echo "Dati ricevuti.
"; while ($ riga = mysqli_fetch_assoc ($ risultato)) (echo" Login: $ riga. Password: $ riga.
";) mysqli_close ($ link);

Esistono anche funzioni mysqli_fetch_array() - restituisce qualsiasi tipo di array e mysqli_fetch_object() - restituisce un oggetto.

SELECT DISTINCT Query - Valori di campo univoci

Creiamo una nuova tabella:

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_select_db ("tester"); // elimina la tabella esistente mysqli_query ($ link, "DROP TABLE users"); // crea una nuova tabella $ query = "CREATE TABLE utenti (nome VARCHAR (20), cognome VARCHAR (20), età TINYINT UNSIGNED)"; if (mysqli_query ($ link, $ query)) echo "La tabella è stata creata.
"; else echo" Tabella non creata: ". mysqli_error (); // funzione per aggiungere record alla funzione della tabella add_new_line ($ link, $ query) (if (! mysqli_query ($ link, $ query)) echo" Utente no aggiunto: ". mysqli_error ();) // aggiungi record add_new_line ($ link," INSERT INTO users (nome, cognome, età) VALUE ("Max", "Jayson", "33") "); add_new_line ($ link , "INSERT INTO users (nome, cognome, età) VALUE (" Bob "," Freeman "," 26 ")"); add_new_line ($ link, "INSERT INTO users (nome, cognome, età) VALUE (" Sara " , "Lopes", "65") "); add_new_line ($ link," INSERT INTO utenti (nome, cognome, età) VALUE ("Serg", "Pupin", "29") "); add_new_line ($ link, " INSERT INTO utenti (nome, cognome, età) VALUE ("Serg", "Borman", "43") "); add_new_line ($ link," INSERT INTO utenti (nome, cognome, età) VALUE ("Max", " Lopes "," 21 ")"); // visualizza il contenuto della tabella nel browser $ risultato = mysqli_query ($ link, "SELECT * FROM utenti"); if (! $ Risultato) echo "Si è verificato un errore: ". Mysqli_error (); else echo "Dati ricevuti.
"; while ($ riga = mysqli_fetch_assoc ($ risultato)) (echo" Nome: $ riga. Cognome: $ riga. Età: $ riga.
";) mysqli_close ($ link);

Quindi, abbiamo una nuova tabella più complessa con record univoci. Ora vediamo quanti nomi abbiamo nel database.

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_select_db ("tester"); $ risultato = mysqli_query ($ link, "SELECT DISTINCT name FROM users"); echo "Nomi totali:". mysqli_num_rows ($ risultato). "
"; echo" Elenco dei nomi:
"; while ($ nome = mysqli_fetch_row ($ risultato)) (echo" $ nome
";) mysqli_close ($ link);

La query SQL "SELECT DISTINCT name FROM users" ha restituito un risultato con tutti i nomi univoci nella nostra tabella. Ogni nome univoco su una nuova riga nel risultato della query.

Ordinamento del risultato - ORDINA PER

Aggiungendo il comando ORDER BY alla query SQL, ordiniamo il risultato della query in ordine crescente (numeri e lettere in ordine alfabetico). Ecco un esempio in cui puoi confrontare una query normale e ordinarla per età (campo età).



";) echo" Ordina per età:
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti ORDER BY age "); while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Nome: $ riga. Cognome: $ riga. Età: $ linea.
";) mysqli_close ($ link);

Puoi sostituire il campo età nel comando ORDER BY con il campo nome e vedere il risultato.

Per ordinare il risultato della query in ordine inverso, utilizzare il comando ORDER BY age DESC.

Condizione corrispondente - DOVE

Aggiungendo il comando WHERE alla query SQL, interrogheremo solo i record che corrispondono alla condizione. Ad esempio, facciamo una richiesta per le persone con meno di 30 anni.

Per fare ciò, usa la query SQL "SELECT * FROM users WHERE age

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_select_db ("tester"); echo "Persone sotto i 30 anni:
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti WHERE età<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
";) mysqli_close ($ link);

Possiamo anche ordinare immediatamente il risultato in ordine crescente per età:
"SELECT * FROM utenti WHERE età<30 ORDER BY age ".

Se effettuiamo la query "SELECT name FROM users WHERE age<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

Possiamo interrogare i valori di due campi: "SELECT nome, età FROM utenti WHERE età

Ora chiedi a tutti gli utenti denominati "Max".

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_select_db ("tester"); echo "Tutto massimo:
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti WHERE nome = "Max" "); while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Nome: $ riga. Cognome: $ riga. Età: linea $.
";) mysqli_close ($ link);

E un altro esempio di query: selezionerà solo i nomi dalla tabella utenti, tutto tranne Max.

SELECT nome FROM utenti WHERE nome! = "Max"

Questo è tutto con la clausola WHERE.

Record di limitazione - LIMIT

Aggiungendo il comando LIMIT alla query SQL, limiteremo la dimensione del risultato.

Una query che stampa i primi tre record: "SELECT * FROM users LIMIT 3". Vediamo come funziona:

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_select_db ("tester"); echo "Contenuto della tabella:
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti "); while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Nome: $ riga. Cognome: $ riga. Età: $ riga.
";) eco"

Le prime tre voci:
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti LIMIT 3 "); while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Nome: $ riga. Cognome: $ riga. Età: $ riga .
";) eco"

Seconde tre voci:
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti LIMIT 3, 3 "); while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Nome: $ riga. Cognome: $ riga. Età: $ riga...
";) mysqli_close ($ link);

Anche qui abbiamo usato la query: "SELECT * FROM users LIMIT 3, 3". La seconda tripla indica l'offset nel risultato della query.

Abbinamento dei modelli - LIKE

Il linguaggio SQL supporta modelli semplici. Per questo, viene utilizzato il comando LIKE e il modello viene specificato utilizzando il carattere%.

Ecco una query di esempio che restituirà tutti i record con nomi che iniziano con la lettera S.

SELECT * FROM utenti WHERE nome LIKE "S%"

Testare la richiesta:

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_select_db ("tester"); echo "Contenuto della tabella:
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti "); while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Nome: $ riga. Cognome: $ riga. Età: $ riga.
";) eco"

Nomi che iniziano con S:
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti WHERE nome LIKE "S%" "); while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Nome: $ riga. Cognome: $ riga Età: $ linea.
";) mysqli_close ($ link);

Ecco una query di esempio che restituirà tutti i record con cognomi che terminano con la lettera s.

SELECT * FROM utenti WHERE nome LIKE "% s"

Corrispondenza con la condizione - IN

Questa query che utilizza il comando IN restituirà solo le righe che corrispondono strettamente alla condizione.

Ad esempio, siamo interessati alle persone di 21, 26 e 33 anni.

SELEZIONA * FROM utenti DOVE età IN (21,26,33)

Testare la richiesta:

$ link = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Errore"); mysqli_select_db ("tester"); echo "Contenuto della tabella:
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti "); while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Nome: $ riga. Cognome: $ riga. Età: $ riga.
";) eco"

Persone con le età richieste (21, 26, 33):
"; $ risultato = mysqli_query ($ link," SELECT * FROM utenti WHERE età IN (21, 26, 33) "); while ($ riga = mysqli_fetch_row ($ risultato)) (echo" Nome: $ riga. Cognome : linea $ Età: linea $.
";) mysqli_close ($ link);

Valore massimo e minimo in una colonna

Seleziona il valore massimo di età nella tabella utenti.

SELECT max (età) FROM utenti

La query seguente seleziona i dati dalla tabella utenti utilizzando i campi nome ed età, dove età è il valore minimo.

SELEZIONA nome, min (età) FROM utenti

Aggiornamento di un record - AGGIORNAMENTO

Impostiamo Max Lopes a 15 anni. Questo viene fatto con una query MySQL:

AGGIORNA utenti SET età = "15" WHERE nome = "Max" AND cognome = "Lopes"

Notare il nuovo comando AND (e - in inglese significa "e") nella query. Se non specifichiamo il cognome, allora verrà impostata l'età di 15 anni per tutti i Max nella tabella.

Una query può aggiornare due o più campi in una riga. Questo viene fatto come segue:

AGGIORNA utenti SET età = "18", cognome = "Coocker" WHERE id = "3"

La nostra tabella non ha un campo ID, quindi questa query non funzionerà su di essa. Ma impareremo sicuramente questo campo che contiene numeri di riga univoci.

Elimina record - ELIMINA

Interroga il database MySQL per eliminare un record:

DELETE FROM utenti WHERE id = "10"

Ancora una volta, non c'è alcun campo ID nella nostra tabella. Ma possiamo rimuovere da esso tutte le persone di età inferiore ai 18 anni.

ELIMINA DA utenti WHERE età< "18"

TABELLA DROP

Query del database MySQL che elimina l'intera tabella degli utenti:

DROP TABLE utenti

Eliminazione di una colonna - ALTER TABLE... DROP...

A volte potrebbe essere necessario eliminare una colonna da una tabella, ad esempio rimuoviamo la colonna età dagli utenti:

Gli utenti ALTER TABLE DROP age

Questa query MySQL ha eliminato la colonna in modo permanente e irrevocabile.

Aggiungi colonna - ALTER TABLE ... AGGIUNGI ...

A volte potresti voler aggiungere una colonna a una tabella esistente, ad esempio aggiungiamo di nuovo la colonna età alla tabella utenti:

ALTER TABLE utenti AGGIUNGI età TINYINT UNSIGNED

Rinomina colonna - ALTER TABLE ... CAMBIA ...

A volte potrebbe essere necessario rinominare una colonna, ad esempio rinominare la colonna dell'età in vozrast. Lo facciamo così:

ALTER TABLE utenti CAMBIA età vozrast TINYINT UNSIGNED

Questa query MySQL ha rinominato la colonna dell'età in vozrast con il tipo di dati TINYINT UNSIGNED.

Rinominare una tabella - RENAME TABLE ... TO ...

A volte potrebbe essere necessario rinominare una tabella:

RINOMINA gli utenti della TABELLA in popoli

Eliminazione di un database - ELIMINA DATABASE

Questa query può eliminare il database con il tester del nome:

DROP DATABASE tester

Creazione di un database - CREA DATABASE

Questa query crea un database denominato tester:

CREA DATABASE tester

Questa richiesta funziona per me su Denver, ma sull'hosting potrebbe non funzionare se l'utente del database non dispone dell'autorizzazione per eseguire la cancellazione.

Risultati

Quindi, in questa parte abbiamo fatto conoscenza con le query a MySQL. Molte delle richieste che abbiamo considerato non ci sono spesso utili nel processo di lavoro, ma è necessario conoscerle, poiché torneranno sicuramente utili nel processo di sviluppo degli script.

Alcune richieste vengono solitamente effettuate solo da phpMyAdmin (creazione ed eliminazione di database ad esempio).

Nel lavoro dei siti, di solito è necessario aggiungere un record a una tabella, modificare un record o eliminare un record da una tabella.

Il prossimo passo è esplorare i tipi di dati MySQL.

Dopo aver installato e configurato il database MySQL, puoi iniziare a scrivere script PHP per interagire con il database. Questo articolo descrive tutte le funzioni di base che consentono di trasferire i dati avanti e indietro da un sito Web a un database.

Non importa quanto siano semplici o complessi i tuoi script, purché parlino con il database, iniziano con le stesse poche cose:

  1. Connessione a un database MySQL installato.
  2. Utilizzo del comando USE sul database MySQL desiderato.
  3. Invio di SQL al database.
  4. Ottenere risultati.
  5. Elaborazione dei risultati.

I passaggi 3, 4 e 5 variano a seconda della natura del lavoro svolto. Lo script che crea le tabelle è leggermente diverso dallo script che cerca le tabelle esistenti. Ma i primi due passaggi, connettersi a MySQL e utilizzare il database corretto, sono sempre gli stessi, indipendentemente dallo scopo dello script.

Connessione al database MySQL

Innanzitutto, devi dire al tuo script PHP come connettersi al database. Questo processo essenzialmente dice a PHP di fare esattamente quello che hai fatto quando hai iniziato con il tuo client da riga di comando MySQL. Per connettersi al database, PHP dovrà passare le seguenti informazioni: nome host del database, nome utente, password e nome del database.

Per connetterci al database, utilizzeremo PDO - PHP Data Objects. Quando lo usi, non puoi aver paura, questo è possibile grazie ai parametri preparati, ma ne parleremo più avanti.

È importante! Se trovi una lezione su Internet in cui verrà utilizzato mysqli_connect o mysql_connect, non esitare a chiuderla, come hanno scritto 10 anni fa.

Per creare una connessione è necessario creare un nuovo oggetto della classe PDO. Come argomenti per il costruttore, è necessario passare un DSN - questa è una stringa che indica il driver (nel nostro caso, mysql), l'host e il nome del database. Il secondo argomento è il nome utente (nel nostro caso, root). La terza è la password (nel nostro caso, vuota).

Prima della lezione, ho creato un database utenti e in esso una targa dati con la seguente struttura:

CREATE TABLE `data` (` id` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (32) DEFAULT NULL,` year` char (4) DEFAULT NULL, PRIMARY KEY (id)) ENGINE = InnoDB DEFAULT CHARSET = utf8 ; $ dbh = new\PDO ("mysql: host = localhost; dbname = utenti;", "root", "");

Il primo passo dopo la connessione è impostare la codifica:

$ dbh-> exec ("IMPOSTA NOMI UTF8");

Successivamente, possiamo eseguire le richieste. Sembra così:

$ stm = $ dbh-> prepare ("INSERT INTO data (` name`, `year`) VALUES (: name,: year)"); $ stm-> bindValue ("nome", "Nome"); $ stm-> bindValue ("anno", "1703"); $ stm-> esegui ();

Innanzitutto, creiamo una richiesta preparata - non è ancora stata eseguita. Nota che invece dei valori, abbiamo specificato: nome e: anno - questi sono i parametri in cui verranno sostituiti i valori specificati nelle due righe successive. Alla fine, chiamiamo execute() - infatti, eseguiamo la richiesta risultante.

Eseguiamo questo script e diamo un'occhiata a ciò che è apparso nel database.

Aggiorniamo lo script ancora un paio di volte e esaminiamo di nuovo il database.

Recupero da un database utilizzando PHP

Leggiamo ora i dati che abbiamo scritto. Lo schema è lo stesso, solo che prepariamo una query SELECT.

$ stm = $ dbh-> prepare ("SELECT * FROM` data` "); $ stm-> esegui ();

La richiesta è stata soddisfatta, ma non è tutto. Ora devi ottenere il risultato. Questo è fatto in questo modo:

$ allUsers = $ stm-> fetchAll (); var_dump ($ allUsers);

Di conseguenza, otteniamo un array di questi record:

Mostriamoli in modo più bello, aggiungiamo un po' di HTML.

$ stm = $ dbh-> prepare ("SELECT * FROM` data` "); $ stm-> esegui (); $ allUsers = $ stm-> fetchAll (); ?>

IDNomeAnno

Bene, questa è una questione completamente diversa!

Se è necessario aggiungere alcuni parametri nella query SELECT, l'operazione viene eseguita allo stesso modo:

$ stm = $ dbh-> prepare ("SELECT * FROM` data` WHERE id =: id "); $ stm-> bindValue ("id", 1); $ stm-> esegui (); $ utenti = $ stm-> fetchAll (); var_dump ($ utenti);

Ora solo un utente tornerà, soddisfacendo le condizioni della richiesta.

In questo articolo, utilizzeremo esempi per analizzare punti molto importanti nel lavoro con i database MySQL (DB), come il recupero dal database, la scrittura nel database, l'aggiornamento delle informazioni nel database e l'eliminazione dal database. Tutto ciò verrà fatto utilizzando quattro istruzioni: SELECT, INSERT, UPDATE e DELETE, che verranno discusse in questo articolo.

Quindi, se hai bisogno di ottenere tutti i campi dal database, usa il seguente codice.

$ risultato = mysql_query ("SELECT * FROM first_table", $ db);

Un asterisco significa che è necessario estrarre tutti i campi dalla tabella.

Se è necessario estrarre solo alcuni campi, ad esempio nome e cognome.

$ risultato = mysql_query ("SELECT name, last_name FROM first_table", $ db);

nome, cognome - campi con nomi e cognomi degli utenti.

Se hai bisogno di ottenere dati esatti, ad esempio, il cognome di tutti gli utenti nel database con un nome specifico (il nome verrà inserito nella variabile $ name).

name = '$ name' - il campo del nome è uguale alla variabile $ name.

Oltre a una condizione, possiamo elencarne anche diverse, ad esempio è necessario ottenere l'identificatore di tutti gli utenti con un nome e un cognome specifici (il nome e il cognome verranno inseriti rispettivamente nelle variabili $ nome e $ cognome) . Per questo possiamo usare il seguente codice.

Se abbiamo bisogno di ottenere record in cui è soddisfatta una delle diverse condizioni, ad esempio, per ottenere gli identificatori di tutti gli utenti il ​​cui nome o cognome corrisponde a quelli specificati nelle condizioni.

Se è necessario ordinare il risultato in base ad alcuni parametri, ad esempio per nome.

$ risultato = mysql_query ("SELECT * FROM first_table ORDER BY name", $ db);

ORDINA PER nome - ordina per nome.

Se hai bisogno di ordinare in ordine inverso.

$ risultato = mysql_query ("SELECT * FROM first_table ORDER BY name DESC", $ db);

DESC - in ordine inverso.

Se hai bisogno di estrarre solo un certo numero di campi dal database. Ad esempio, è necessario estrarre i primi cinque campi.

$ risultato = mysql_query ("SELECT * FROM first_table ORDER BY id LIMIT 5", $ db);

LIMIT 5 - estrarre solo i primi cinque risultati dal database.

Questi erano piccoli esempi di un campione dal database. Ora diamo un'occhiata a come convertire il risultato risultante in un array per un ulteriore utilizzo, ad esempio, per visualizzare il risultato sullo schermo. Per questo, PHP ha uno speciale mysql_fetch_array ().

Possiamo inserire il risultato dell'esecuzione della funzione in una variabile, ad esempio la variabile $ myrow, che verrà memorizzata in se stessa. Come parametro di funzione mysql_fetch_array () il risultato dell'esecuzione della funzione verrà passato mysql_query()... Sembrerà tutto così.

$ myrow = mysql_fetch_array ($ risultato);

Ora possiamo accedere agli elementi dell'array associativo $ myrow. Ad esempio, diamo un'occhiata al codice che visualizza il nome utente con id = 1. Il database db_first dell'articolo precedente verrà utilizzato come database.

/ * Connessione al database * / $ db = mysql_connect ("Server MySQL", "Utente database", "Password per l'accesso al database"); mysql_select_db ("nome_db", $ db); / * Facciamo una query al database * / $ risultato = mysql_query ("SELECT name FROM first_table WHERE id =" $ id "", $ db); / * Converti il ​​risultato in un array * / $ myrow = mysql_fetch_array ($ risultato); / * Stampa il risultato sullo schermo * / echo $ miariga ["nome"];

Come puoi vedere, tutto è molto semplice e diretto.

Passiamo ora alla successiva istruzione INSERT, che è responsabile dell'aggiunta di informazioni al database.

Aggiunta di informazioni al database. INSERISCI dichiarazione

L'istruzione INSERT viene utilizzata per aggiungere informazioni al database. Il codice responsabile dell'aggiunta ha la seguente sintassi.

$ risultato = mysql_query ("INSERT INTO table (field 1, field 2, field N) VALUES (" valore 1 "," valore 2 "," valore N ")");

Ad esempio, dobbiamo aggiungere il nome e il cognome del nuovo utente alla prima_tabella. È possibile utilizzare il seguente codice per questo.

$ risultato = mysql_query ("INSERT INTO first_table (name, last_name) VALUES (" $ name "," $ last_name ")");

Dove, $ nome e $ cognome sono variabili con il nome e il cognome del nuovo utente.

Puoi usare per controllare il risultato.

$ risultato = mysql_query ("INSERT INTO first_table (name, last_name) VALUES (" $ name "," $ last_name ")"); if ($ risultato == "true") (echo "Record aggiunto con successo!";) else (echo "Record non aggiunto!";)

In altre parole, se la variabile $ risultato è vera, verrà visualizzato un messaggio che informa che il record è stato aggiunto. In caso contrario, sembrerà che il record non sia stato aggiunto al database.

Aggiornamento delle informazioni nel database. AGGIORNAMENTO dichiarazione

L'istruzione UPDATE viene utilizzata per aggiornare le informazioni esistenti nel database. La sintassi per la funzione mysql_query in questo caso è la seguente.

Ora passiamo a un esempio. Supponiamo di dover modificare il nome e il cognome dell'utente con l'identificatore $ id nella tabella db_name. È possibile utilizzare il seguente codice per questo.

Passiamo ora alla parte finale dell'articolo e diamo un'occhiata all'ultima istruzione DELETE, che è responsabile dell'eliminazione delle informazioni dal database.

Rimozione di informazioni dal database. Dichiarazione DELETE

L'istruzione DELETE viene utilizzata per eliminare i campi dal database. La sintassi per la funzione mysql_query() in questo caso è la seguente.

Ora, come al solito, passiamo a un esempio. Supponiamo di dover eliminare un utente con $ id dalla tabella db_name. È possibile utilizzare il seguente codice per questo.

Questo conclude questo articolo. Il materiale non è difficile, ma è piuttosto difficile spiegarlo attraverso il testo. Tuttavia, penso che tu abbia capito l'intero punto del materiale di cui sopra. Se hai ancora domande su questo articolo, puoi sempre farle nei commenti.

È tutto. Buona fortuna e successo nell'apprendimento di PHP e MySQL.