Ciao a tutti,
Ho un problema che proprio non riesco a capire...
In sostanza ho creato una classe db che utilizza le funzioni PDO riscrivendole in modo più comodo.
Riporto :
Codice PHP:
public function fetchAll($sql, array $params = array()){
return $this->executeQuery($sql, $params)->fetchAll();
}
public function executeQuery($sql,array $params = array()){
try{
//PDOStatement
$smt = $this->pdo->prepare($sql);
if($params){
foreach($params as $key => $value){
if(is_numeric($key)){
$smt->bindValue($key+1, $value);
}else{
$smt->bindValue (":$key", $value);
print_r($key."=".$value."<br />");
}
}
}
$smt->execute();
return $smt;
}catch(PDOException $ex){
$this->handleExceptions($ex);
}
}
Il metodo contenuto nella classe user esegue questa sql :
Codice PHP:
public function CheckLogin($user,$password){
$rk=$this->db->fetchAll("SELECT COUNT(*) AS find FROM utenti WHERE user = :user AND password = :password",array('user' => $user, 'password' =>$password));
var_dump($rk);
$rk[0]['find'];
/*if($rk[0] == 1)
echo "Autenticato";
else
echo "Non autenticato";*/
}
Il var dump mi restituisce questa cosa :
array(1) { [0]=> array(2) { ["find"]=> string(1) "1" [0]=> string(1) "1" } }
??????????
Perchè??
Non mi dovrebbe restituire un singolo array????
infatti per accedere al dato io devo fare $rk[0]['find'], invece io mi aspettavo di dovere fare $rk['find']....
Sto sbagliando qualcosa oppure è proprio così???
Ho notato che utilizzando il metodo fetch e basta ritorna un singolo array... non riesco a capire