2010-02-25 2 views
0

Lorsque j'exécute le code suivant dans un script PHP. Le jeu de résultats est toujours vide. Cependant, lorsque j'exécute la même requête dans la console mysql ou dans phpmyadmin, elle affiche correctement 18 lignes dans le resultset. Qu'est-ce qui pourrait mal tourner ici?mysql_query renvoie un resultset vide, même lorsque la requête est valide

$result_set = mysql_query("SELECT * FROM categories WHERE 1 ", $this->database_handle); 

var_dump($this->database_handle); 
var_dump($result_set); 
var_dump(mysql_num_rows($result_set)); 

- la sortie est

resource(42) of type (mysql link) 
resource(48) of type (mysql result) 
int(0) bool(false) 

Cependant, quand je tente d'insérer des données dans ce tableau, l'insertion est impeccable.

Comme suggéré dans certaines des réponses précédentes, je l'ai déjà essayé plusieurs combinaisons comme

$result_set = mysql_query("SELECT * FROM categories WHERE 1=1 ", $this->database_handle); 
$result_set = mysql_query("SELECT * FROM categories", $this->database_handle); 
$result_set = mysql_query("select category_id, name from `categories` where `name` like 'cat-1'", $this->database_handle); 
$result_set = mysql_query("SELECT category_id,name FROM categories WHERE 1 ", $this->database_handle); 

-

structure of table 

Field   Type   Null Default Comments 
category_id int(11) No  
name    varchar(255) No    

Toute aide est très appréciée.

+0

Êtes-vous une base de données de réglage par défaut lorsque vous ouvrez la connexion? Cela ferait échouer les SELECT, mais je ne sais pas pourquoi les INSERT fonctionneraient. – staticsan

+0

ce qui apparaît dans vos journaux de requêtes lorsque vous exécutez le script? – Martin

Répondre

0

Le problème est en raison d'un « \ n'in la chaîne de requête que je mettais parce que je voulais utiliser la même chaîne à la fois pour la requête ainsi que le dumping, il sur l'écran.

Il a commencé à fonctionner correctement dès que j'ai supprimé le caractère \ n de la chaîne. Une partie amusante cependant, php mysql library se comportait vraiment bizarrement dans ce cas. Il n'y avait pas d'avertissement ou d'erreur.

Cordialement Nitin

0

Changer votre requête

"SELECT * FROM categories WHERE 1=1 " 
+1

Ou mieux encore, 'SELECT * FROM categories' –

+0

Salut! J'ai déjà essayé toutes ces requêtes et elles ne fonctionnent tout simplement pas. En fait, lorsque j'utilise select count (*) à partir des catégories, le jeu de résultats a 1 ligne avec la valeur 0. Lorsque j'exécute la même requête sur l'invite de commande mysql, cela me donne le résultat correct :( – user210504

Questions connexes