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....