da mysql a pdo

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
Salve, ho questi codici chi è che mi aiuta ad convertirli in connessione pdo-mysql?
ecco vi posto i codici:
Codice:
function get_username ( $id )
	{
		$query = mysql_query("SELECT * FROM `utenti` WHERE `id` = '" . mysql_real_escape_string ( $id ) . "'");
		
		if ( mysql_num_rows ( $query ) == 1 )
		{
			$row = mysql_fetch_array ( $query );
			
			return $row['user'];
		}
		else {
			return FALSE;
		}
	}
	
	
	function ControllaDoppi($tabella, $controllo_nome, $controllo_valore)
    {
        $query = mysql_query ( "SELECT * FROM ".$tabella." WHERE " . mysql_real_escape_string ( $controllo_nome ) . " = '" . mysql_real_escape_string ( $controllo_valore ) . "'" );
        if ( mysql_num_rows ( $query ) == 0 )
        {
            return TRUE;
        }
        else {
            return FALSE;
        }
    }

function isadmin ( $id )
	{
		$query = mysql_query("SELECT `user_level` FROM `utenti` WHERE `id` = '" . mysql_real_escape_string ( $id ) . "'");
		
		if ( mysql_num_rows ( $query ) == 1 )
		{
			$row = mysql_fetch_array ( $query );
			
			if ( $row['user_level'] == 1 )
			{
				return TRUE;
			}
			else {
				return FALSE;
			}
		}
		else {
			return FALSE;
		}
	}

la connessione faccio cosi:

Codice:
<?php
// avvio la sessione
session_start();

// Database connection info
$host = 'localhost';
$port = 3306;
$database = 'Sql438427_3';
$username = 'root';
$password = 'root';

// Construct the DSN
$dsn = "mysql:host=$host;port=$port;dbname=$database";

// Create the connection
$db = new PDO($dsn, $username, $password);

?>

mi dite se va bene almeno la connessione ?

Mi potete aiutarmi?

grazie mille.
 
ok, uno mi e riuscito.
Codice:
function ControllaDoppi($tabella, $controllo_nome, $controllo_valore)
    {
		global $db;
		$strQuery  = "SELECT * FROM ".$tabella." WHERE " .  $controllo_nome  . " = '" .  $controllo_valore  . "'";
		$sth = $db->prepare($strQuery);
		$sth->execute();
		if ($sth->fetchColumn() == 0)  
        {
            return TRUE;
        }
        else {
            return FALSE;
        }
    }

per $row = mysql_fetch_array ( $query );
alternativa di pdo qual'è ?
grazie mille.
 
Questo codice:
PHP:
		$strQuery  = "SELECT * FROM ".$tabella." WHERE " .  $controllo_nome  . " = '" .  $controllo_valore  . "'";
		$sth = $db->prepare($strQuery);
		$sth->execute();
È inutile con PDO. Tanto vale usare la vecchia libreria. Devi scrivere:
PHP:
$stm = $db->prepare("SELECT * FROM {$tabella} WHERE {$controllo_nome} = ?");
$stm->execute(array($controllo_valore));
E per controllare il numero di righe restituite usa rowCount(). fetchColumn() va bene per una query di questo tipo:
PHP:
$stm = $db->prepare("SELECT COUNT(*) FROM {$tabella} WHERE {$controllo_nome} = ?");
$stm->execute(array($controllo_valore));
 
alla fine ho abbandonato tutto .. perché mi riesce di più con Mysqli che tanto io uso solo mysql perché gli hosting dove ci sono hanno solo Mysql.

ciao. alla prossima.
 

Discussioni simili