[PHP] controllo doppi dati

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

[PHP] controllo doppi dati

Messaggio da treled »

Salve, sto traducendo un sito che ho fatto con mysqli a pdo..

ora sono arrivato ad tradurre questa porzione di codice:

Codice: Seleziona tutto

function CheckUnique($tabella, $controllo_nome, $controllo_valore)
    {
        global $pdo;
        $query = $pdo->prepare("SELECT * FROM ".$tabella." WHERE ".$controllo_nome."=:".$controllo_valore."");
		$query->execute(array(':'.$controllo_nome.''=>$controllo_valore));
		
		$num = $query->rowCount();
		
        if ($num>0)
        {
            return FALSE;
        }
        else {
            return TRUE;
        }
    }
ma non mi funziona, ed mi segnala:
Invalid parameter number: parameter was not defined
la funzione funziona in questo modo:

Codice: Seleziona tutto

....
}elseif(!CheckUnique("news_categories", 'name', $name))
{
	$error ="Nome duplicato";
}
...
come mai mi segnala quel expection error?
avete idea come fare funzionarla .?
grazie mille e buona serata.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] controllo doppi dati

Messaggio da Zoff »

Mi sembra sbagliata la query di fondo, il nome del parametro è $controllo_nome non $controllo_valore
Credo dovrebbe essere:

Codice: Seleziona tutto

        $query = $pdo->prepare("SELECT * FROM ".$tabella." WHERE ".$controllo_nome."=:".$controllo_nome."");
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] controllo doppi dati

Messaggio da treled »

ho quasi risolto vedi se va bene in questo modo:

Codice: Seleziona tutto

<?php
function unique($table, $fieldname, $value)
{
	 $query = dbConnect()->prepare("SELECT COUNT({$fieldname}) FROM {$table} WHERE {$fieldname} = :{$fieldname}");
	 $query->bindParam(":{$fieldname}", $value, PDO::PARAM_STR);
	 $query->execute();
	 return ! (bool) $query->fetchColumn();
}
?>
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti