Originariamente inviato da Ranma2
mysql_query e tutta l'estensione verrà deprecata è deprecata dalla versione 5.5.0. Visto che sei evidentemente agli inizi evita di usarla e passa a MySQLi o a PDO
Occorrerebbe mettere un bel messaggione in testa a questo forum
Ciao!
Non faccio in tempo ad imparare una cosa che viene deprecata!!
Mi sto documentando su PDO e scopiazzando e leggendo un po' in giro, sto provando a riscrivere il codice utilizzando questa tecnica...
Il mio scopo didattico è quello di creare un semplice sistema di registrazione/login php/MySQL:
Codice PHP:
$db_host = "localhost";
$db_user = "root";
$db_psw = "123456";
$db_name = "SVILUPPO";
$col = "mysql:host=$db_host; dbname=$db_name";
try {
$db = new PDO($col , "$db_user", "$db_psw");
}
catch(PDOException $e) {
echo 'Attenzione errore: '.$e->getMessage();
}
Fin qui sembra funzionare;
il primo dubbio che mi viene è che se elimino il blocco "catch" mi viene segnalato un errore di sintassi; è perchè ho sbagliato qualcosa o perchè è obbligatorio?
Codice PHP:
$sql = $db->prepare('SELECT nome, cognome FROM anagrafica');
$sql->execute();
$res = $sql->fetchAll();
A questo punto la variabile $res dovrebbe contenere l'array di risultati, giusto? Da questo punto in poi potrei riprendere le tecniche che già conosco, ad esempio sostituendolo con:
Codice PHP:
while ($res = $sql->fetchAll()) {
istruzione
istruzione
istruzione
}
Te lo chiedo perchè con le prime prove effettuate ho avuto dei risultati contrastanti, quindi se c'è un errore di fondo, meglio saperlo prima!
Inoltre, ho letto che per l'esecuzione delle query è preferibile utilizzare il metodo "prepare" appunto, invece del semplice "query" perchè mette al riparo anche dall'SQL-Injection... ma in che modo?
Il problema, l'avrai capito, è che non so programmare ad oggetti :-s quindi se per gestire la connessione tramite PDO mi bastano queste e poche altre istruzioni magari riesco a gestire, se invece questa è solo la punta dell'iceberg e c'è tanta roba ancora, mi sa che mi tocca ripiegare su mysqli....