PHP MySQLi Funzioni: mysqli_query, mysqli_connect, mysqli_fetch_array
PHP ha una ricca raccolta di funzioni integrate per la manipolazione MySQL banche dati.
Funzione PHP mysqli_connect
La funzione PHP mysql connect viene utilizzata per connettersi a un MySQL server della banca dati.
La sintassi è la seguente.
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
QUI,
- "$db_handle" è la variabile della risorsa di connessione al database.
- “mysqli_connect(…)” è la funzione per la connessione al database php
- “$nome_server” è il nome o l'indirizzo IP del server che ospita MySQL server.
- “$user_name” è un nome utente valido in MySQL server.
- "$password" è una password valida associata a un nome utente in MySQL server.
Funzione PHP mysqli_select_db
La funzione mysqli_select_db viene utilizzata per selezionare un database.
La sintassi è la seguente.
<?php mysqli_select_db($db_handle,$database_name); ?>
QUI,
- “mysqli_select_db(…)” è la funzione di selezione del database che restituisce true o false
- “$database_name” è il nome del database
- "$link_identifier" è facoltativo, viene utilizzato per passare il collegamento di connessione al server
Funzione PHP mysqli_query
La funzione mysqli_query viene utilizzata per l'esecuzione SQL interrogazioni.
La funzione può essere utilizzata per eseguire i seguenti tipi di query;
- inserire
- Seleziona
- Aggiornanento
- delete
La sintassi è la seguente.
<?php mysqli_query($db_handle,$query) ; ?>
QUI,
- “mysqli_query(…)” è la funzione che esegue le query SQL.
- “$query” è la query SQL da eseguire
- "$link_identifier" è facoltativo e può essere utilizzato per passare il collegamento di connessione al server
Funzione PHP mysqli_num_rows
La funzione mysqli_num_rows viene utilizzata per ottenere il numero di righe restituite da una query di selezione.
La sintassi è la seguente.
<?php mysqli_num_rows($result); ?>
QUI,
- “mysqli_num_rows(…)” è la funzione di conteggio delle righe
- "$result" è il set di risultati mysqli_query
Funzione PHP mysqli_fetch_array
La funzione mysqli_fetch_array viene utilizzata per recuperare array di righe da un set di risultati di query.
La sintassi è la seguente.
<?php mysqli_fetch_array($result); ?>
QUI,
- “mysqli_fetch_array(…)” è la funzione per recuperare gli array di righe
- "$risultato" è il risultato restituito dalla funzione mysqli_query.
Funzione PHP mysqli_close
La funzione mysqli_close viene utilizzata per chiudere una connessione al database aperta.
La sintassi è la seguente.
<?php mysqli_close($db_handle); ?>
QUI,
- “mysqli_close(…)” è la funzione PHP
- "$link_identifier" è facoltativo, viene utilizzato per passare la risorsa di connessione al server
Vediamo degli esempi pratici che sfruttano queste funzioni.
Creare il MySQL database Questo tutorial presuppone la conoscenza di MySQL e SQL, se questi termini non ti sono familiari, fai riferimento al nostro MySQL ed esercitazioni SQL.
Creeremo un semplice database chiamato my_personal_contacts con una sola tabella.
Di seguito sono riportati i passaggi per creare il database e la tabella.
- Connessione a MySQL utilizzando il tuo strumento di accesso preferito come MySQL workbench, phpMyAdmin ecc.
- Crea un database denominato my_person_contacts
- Esegui lo script mostrato di seguito per creare la tabella e inserire alcuni dati fittizi
<?php CREATE TABLE IF NOT EXISTS `my_contacts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `full_names` varchar(255) NOT NULL, `gender` varchar(6) NOT NULL, `contact_no` varchar(75) NOT NULL, `email` varchar(255) NOT NULL, `city` varchar(255) NOT NULL, `country` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES (1, 'Zeus', 'Male', '111', 'zeus @ olympus . mt . co', 'Agos', 'Greece'), (2, 'Anthena', 'Female', '123', 'anthena @ olympus . mt . co', 'Athens', 'Greece'), (3, 'Jupiter', 'Male', '783', 'jupiter @ planet . pt . co', 'Rome', 'Italy'), (4, 'Venus', 'Female', '987', 'venus @ planet . pt . co', 'Mars', 'Italy'); ?>
Ora abbiamo un database configurato che manipoleremo da PHP.
Lettura dei record dal database Creeremo ora un programma che stampi i record dal database.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysqli_error()); //if selection fails output error message $sql_stmt = "SELECT * FROM my_contacts"; //SQL select query $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Database access failed: " . mysqli_error()); //output error message if query execution failed $rows = mysqli_num_rows($result); // get number of rows returned if ($rows) { while ($row = mysqli_fetch_array($result)) { echo 'ID: ' . $row['id'] . '<br>'; echo 'Full Names: ' . $row['full_names'] . '<br>'; echo 'Gender: ' . $row['gender'] . '<br>'; echo 'Contact No: ' . $row['contact_no'] . '<br>'; echo 'Email: ' . $row['email'] . '<br>'; echo 'City: ' . $row['city'] . '<br>'; echo 'Country: ' . $row['country'] . '<br><br>'; } } mysqli_close($dbh); //close the database connection ?>
L'esecuzione del codice precedente restituisce i risultati mostrati nel diagramma mostrato di seguito
Inserimento di nuovi record
Consideriamo ora un esempio che aggiunge un nuovo record alla nostra tabella. il codice seguente mostra l'implementazione.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysql_error()); //if selection fails output error message $sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; $sql_stmt .= " VALUES('Poseidon','Mail','541',' poseidon @ sea . oc ','Troy','Ithaca')"; $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Adding record failed: " . mysqli_error()); //output error message if query execution failed echo "Poseidon has been successfully added to your contacts list"; mysqli_close($dbh); //close the database connection ?>
Eseguendo il codice sopra riportato "Poseidon è stato aggiunto con successo al tuo elenco di contatti" torna all'esempio di query di selezione e recupera nuovamente i tuoi contatti.
Controlla se Poseidone è stato aggiunto alla tua lista.
Aggiornamento dei record Consideriamo ora un esempio che aggiorna un record nel database.
Supponiamo che Poseidone abbia cambiato numero di contatto e indirizzo email.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysql_error()); //if selection fails output error message $sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ' poseidon @ ocean . oc '; //SQL select query $sql_stmt .= " WHERE `id` = 5"; $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Deleting record failed: " . mysqli_error()); //output error message if query execution failed echo "ID number 5 has been successfully updated"; mysqli_close($dbh); //close the database connection ?>
Eliminare i record
Consideriamo ora un esempio che rimuove i record dal database. Supponiamo che Venus abbia un ordine restrittivo nei nostri confronti e dobbiamo rimuovere le informazioni dei suoi contatti dai nostri banca dati.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); //connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); //if connection failed output error message if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysqli_error()); //if selection failes output error message $id = 4; //Venus's ID in the database $sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; //SQL Delete query $result = mysqli_query($dbh,$sql_stmt); //execute SQL statement if (!$result) die("Deleting record failed: " . mysqli_error()); //output error message if query execution failed echo "ID number $id has been successfully deleted"; mysqli_close($dbh); //close the database connection ?>
PDO dell'oggetto di accesso ai dati PHP
Il PDO è una classe che ci consente di manipolare diversi motori di database come MySQL, PostGres, MS SQL Server ecc.
Il codice seguente mostra il metodo di accesso al database utilizzando l'oggetto PDO.
Nota: il codice seguente presuppone la conoscenza del linguaggio SQL, degli array, della gestione delle eccezioni e del ciclo foreach.
<?php try { $pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->exec('SET NAMES "utf8"'); $sql_stmt = "SELECT * FROM `my_contacts`"; $result = $pdo->query($sql_stmt); $result->setFetchMode(PDO::FETCH_ASSOC); $data = array(); foreach ($result as $row) { $data[] = $row; } print_r($data); } catch (PDOException $e) { echo $e->getMessage(); } ?>
QUI,
- “try{…catch…}” è il blocco di gestione delle eccezioni
- “$pdo = new PDO(“mysql…” crea un'istanza dell'oggetto PDO e passa i driver del database, i nomi del server e del database, l'ID utente e la password.
- “$pdo->setAtt…” imposta gli attributi della modalità errore PDO e della modalità eccezione
- “$pdo->exec('SET NA…” imposta il formato di codifica
ODBC ODBC è l'acronimo di Open Database Connectivity. Ha la seguente sintassi di base.
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
QUI,
- "odbc_connect" è la funzione incorporata di PHP
- "$dsn" è il nome dell'origine dati ODBC.
- "$user_name" è facoltativo e viene utilizzato per il nome utente ODBC
- "$password" è facoltativo e viene utilizzato per la password ODBC
L'esempio utilizzato presuppone te;
- Stiamo usando Windows OS
- Hai creato un collegamento ODBC al northwind Microsoft Accedi al database denominato northwind
Di seguito è riportato il codice di implementazione per l'accesso ai dati ODBC
<?php $dbh = odbc_connect('northwind', '', ''); if (!$dbh) { exit("Connection Failed: " . $dbh); } $sql_stmt = "SELECT * FROM customers"; $result = odbc_exec($dbh, $sql_stmt); if (!$result) { exit("Error access records"); } while (odbc_fetch_row($result)) { $company_name = odbc_result($result, "CompanyName"); $contact_name = odbc_result($result, "ContactName"); echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>"; } odbc_close($dbh); ?>
Sintesi
- MySQL è una gestione di database relazionali open source disponibile sulla maggior parte dei server di web hosting
- PHP ha una ricca raccolta di funzioni integrate che semplificano il lavoro MySQL
- PDO è l'acronimo di PHP Data Object; viene utilizzato per connettersi a diversi motori di database utilizzando lo stesso oggetto
- PHP utilizza la funzione odbc_connect per manipolare i database tramite ODBC