2011-03-11 2 views
2

Je vais avoir une base de données 'livresAOP préparé problème de l'instruction

book_id  author   title 
    1  O'Brien, Tim  MSXML3: A Comprehensive Guide 
    2  O'Brien, Tim  Microsoft .NET: The Programming Bible 
    3  Kress, Peter  Paradox Lost 
    4  Knorr   Creepy Crawlies 
    5  Thurman, Paula Splish Splash 

Je suis développer ma classe de base de données en utilisant PDO. Mon pdo chaîne de conn prend les paramètres: obj = new PDO("mysql:host = localhost; dbname = testing",root,'')


Enfin ma classe est l'envoi requête: $query(say)=SELECT * FROM books WHERE book_id = ? AND author = ?

ici '? représente le marqueur de paramètre pour la requête préparée. quand je suis préparer ma requête comme: $result = obj->prepare($query);

Sauvegarde du book_id et auteur $ param comme: $param =array(1,Knorr);

Maintenant, je suis l'exécuter comme: $result->execute($param);

Itz ne working.Query pas d'exécution. Après de longues recherches, j'ai essayé le nom de la table de requête avec le nom de la base de données comme: SELECT * FROM testing.books WHERE book_id = ? AND author = ? et exécuté .. il était en cours d'exécution comme le beurre et le travail ...

Maintenant, le problème est que cela se passe ?? .. aucun article de pdo mentionné cela peut aussi arriver. Sumone s'il vous plaît dites-y je dois utiliser le nom de la base de données le long du nom de la table wid ???

+1

Perdez les espaces ("mysql: host = localhost; dbname = testing") – Wrikken

Répondre

3

Essayez avec les espaces dénudés de votre chaîne de connexion:

obj =new PDO("mysql:host=localhost;dbname=testing",root,'') 

Il me semble assez probable que vous n'êtes pas tombé dans la base de données « test » sur la connexion, et je devine la Les espaces dans votre chaîne de connexion confondent le code d'initialisation PDO et vous laissent dans la base de données par défaut.

+0

thnx..il fonctionne maintenant..je fais une erreur stupide –