-
Mysql - Mysqli - PDO
Io ho sempre usato il comando mysql_ per interagire con phpmyadmin...
Ho visto però che questo comando verrà tolto ed è vivamente consigliato l'utilizzo di mysqli o PDO.
Ho provato a guardare molto guide, però non riesco a capire come funziona mysqli, il quale pare avere i comandi identici a mysql, e tantomeno PDO.
Volevo sapere se qualcuno di voi può elencarmi i comandi corrispondenti a mysql più utilizzati(sia mysqli che PDO), ad esempio:
mysql_query
mysql_real_escape_string
mysql_fetch_array
mysql_num_rows
ecc...
Se potete, inoltre, per ciascuno dirmi il corretto uso e tutto ciò che sapete a riguardo :P
Grazie!
-
mysql_query -> mysqli_query
mysql_real_escape_string -> mysqli_real_escape_string
mysql_fetch_array -> mysqli_fetch_array
mysql_num_rows -> mysqli_num_rows
Con PDO non sono così identiche, e se non erro non c'é la versione procedurale, ma solo ad oggetti. Ad esempio, nei metodi query o fetch ci sono degli esempi che ti dovrebbero far capir bene come funziona.
Ciao!
-
Eh ma quelle guide non riesco a capirle...
Ad esempio ho letto che si usa qualcosa del tipo:
$mysql = mysqli_query(..)
$mysql -> query(..)
ma anche che si può mettere solo
mysqli_query(...)
La freccia non capisco a cosa serve.
-
occorrerebbe una trattazione della programmazione orientata agli oggetti :mrgreen:
in pillole:
troverai due operatori
'freccia' -> ti da accesso ai membri di un oggetto
:: che ti da accesso alle proprieta'/costanti/metodi statici di una classe
-
Puoi benissimo utilizzare le versioni procedurali ignorando quelle ad oggetti, proprio come usavi le mysql_*
Ciao!
-
sul sito php.net che mi hai linkato alemoppo, ad esempio per mysql_real_escape_string, leggo che bisogna usare
Codice PHP:
string mysqli_real_escape_string ( mysqli $link , string $escapestr )
devo scriverci "string" davanti? immagino di no :P
e "mysqli" dopo la prima parentesi?
e $link che cosa è?
e "string" dopo la virgola?
Ed un'altra cosa, come faccio a togliere la visualizzazione dei warning?
-
Qui c'é un esempio.
Il primo string significa che la funzione ritorna una stringa. mysqli $link significa che accetta un parametro di tipo "mysqli", che sarebbe il link alla connessione al database, mentre string dopo la virgola significa che accetta una stringa (ovvero quella che devi passare).
Anche per la mysql_real_escape_string() la sintassi di "spiegazione" è la stessa, ed è la stessa per tutte le funzioni.
Comunque vedi l'esempio: dovrebbe essere semplice.
Per i warning, puoi nasconderli tramite la error_reporting() anche se, se c'é un errore ci sarà un motivo e quindi dovresti correggerlo.
Ciao!
-
Ah ok quindi devo dargli sempre la connessione, e di conseguenza devo scrivere:
Codice PHP:
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
su tutte le pagine, non posso fare un include.
-
L'include equivale a scrivere il codice della pagina, quindi puoi benissimo includere quel codice ed usare comunque la variabile di connessione $con.
Ciao!
-