Le bloc de code suivant fonctionne très bien (sans erreurs)AOP agit différentes sur deux -very- requêtes similaires
$query = "select * from users where username = ?";
$statement = $sql->prepare($query);
echo gettype($statement); // -- This returns 'object'
$statement->bindParam(1, $username);
Le tableau suivant indique: Erreur fatale: Appel à une fonction de membre bindParam() sur un non-objet dans /file.php en ligne 39
$email = '[email protected]';
$query = "select * from users where email = ?";
$statement = $sql->prepare($query);
echo gettype($statement); // -- this returns 'boolean'
$statement->bindParam(1, $email); // -- this is line 39.
maintenant, c'est étrange.
Sur mon ordinateur local et mon hôte distant, cela n'a jamais été un problème.
Ces erreurs n'apparaissent que sur cette nouvelle société d'hébergement que j'essaie pour le mois. Pourrait-il être un paramètre de configuration quand ils ont compilé PHP?
-------- modifier -------- Tout en essayant toujours de comprendre ce qui ne va pas, j'ai découvert cela.
$query = "select userID, username from users";
$statement = $sql->prepare($query);
$statement->execute();
$r = $statement->fetchAll(PDO::FETCH_ASSOC);
// display # of rows
echo "Rows returned: " . $statement->rowCount();
// display results array
echo '<pre>'; print_r($r); echo '</pre>';
Sur un serveur, je reçois
Rows returned: 4
Array
(
[0] => Array
(
[userID] => 1
[username] => lyrae
)
[1] => Array
(
[userID] => 2
[username] => jproffer
)
[2] => Array
(
[userID] => 3
[username] => king
)
[3] => Array
(
[userID] => 4
[username] => gergy
)
)
Ce qui est correct. Dit 4 lignes retournées et affiche le tableau de résultats. Sur un autre serveur cependant, je reçois
Rows returned: 0
Array
(
[0] => Array
(
[userID] => 1
[username] => lyrae
)
[1] => Array
(
[userID] => 2
[username] => jproffer
)
[2] => Array
(
[userID] => 3
[username] => king
)
[3] => Array
(
[userID] => 4
[username] => gergy
)
)
Ainsi, il semble aussi que PDOStatement :: rowCount() ne fonctionne pas sur un sever mais fonctionne sur un autre.
Avez-vous essayé de vérifier le '$ sql> errorInfo()' après la requête échoue? La plupart du temps, cela va pointer directement sur le problème. – flussence
Tableau ([0] => 00000) – sqram
Avez-vous appelé cela avant ou après le bindparam? – jmucchiello