Comment accéder aux donnée retourner par PDO->query?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment accéder aux donnée retourner par PDO->query?

par Victor BRITO » 27 nov. 2007, 19:50

Tu devrais ouvrir plus de sujets au lieu de passer ton temps à aider :lol:
On en reparlera d'ici quelques temps. :wink:

par Truc » 27 nov. 2007, 19:07

Dans ce cas, n'oublie pas de mettre le tag "Résolu" en éditant le premier message de ce sujet. :wink:
:afraid:
Tu devrais ouvrir plus de sujets au lieu de passer ton temps à aider :lol:

(le Résolu passe par le bouton fait pour Image :-$ :wink: )

par Victor BRITO » 27 nov. 2007, 17:43

Dans ce cas, n'oublie pas de mettre le tag "Résolu" en éditant le premier message de ce sujet. :wink:

par simane » 27 nov. 2007, 11:20

Salut à tous(tes)

Mercis à tous et à toutes qui m'ont aidé à debugger mon installation PDO.
Finalement c'est résolut.

Je me suis procédé comme suit:
Dans le fichier php.ini, j'ai aujouté ceci
[PDO]
pdo.dsn.mydb="mysql:dbname=sms;host=localhost"

En fait il s'agit d'une alias du DSN.

Code : Tout sélectionner

Ensuite j'ai déclaré une constante dans mon fichier de connexion où je recupère le nom de l'alias comme suit:
define ("CONST_CONNECT_DSN","mydb"); 
Et j'ai passé cette constante à PDO lors de l'instantiation:

$dbcon = new PDO (CONST_CONNECT_DSN, CONST_CONNECT_DB_LOGIN, CONST_CONNECT_DB_PASSWORD);
Et tout est OK
Rappel:
////Récupération des paramètres de connexion à la base de données
	define ("CONST_CONNECT_DB_LOGIN","root");
	define ("CONST_CONNECT_DB_PASSWORD","");

par Victor BRITO » 26 nov. 2007, 16:16

Les extensions PDO et PDO MySQL sont actives. Donc, pas de problème de ce côté-là.
J'ai défini ma constante CONST_CONNECT_DSN comme suit:
define ('CONST_CONNECT_DSN', 'mysql:host=localhost;dbname=ta_base');
Est-ce que tu as correctement renseigné le nom du serveur MySQL, ainsi que celui de ta base de données ? (J'ai mis "localhost" et "ta_base" en guise d'exemples)

par simane » 26 nov. 2007, 12:03

Voici la configuration de mon fichier php.ini si ça peut aider de me debugger:
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.

extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_user.dll
extension=php_mysql.dll

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
extension=php_msql.dll
;extension=php_mssql.dll

extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll

;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll

;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll


;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

par simane » 26 nov. 2007, 11:42

Quand je mets ceci
echo $db->getAttribute(PDO::ATTR_DRIVER_NAME);
Je reçois mysql
mysql[

par simane » 26 nov. 2007, 11:20

Salut à tous(tes),
Quand j'éxécute ma requête sur phpMyAdmin, elle est éxécutée correctement .
J'ai défini ma constante CONST_CONNECT_DSN comme suit:
define ('CONST_CONNECT_DSN', 'mysql:host=localhost;dbname=ta_base');

par Berzemus » 24 nov. 2007, 12:27

Et si tu essayes ceci, il t'affiche quoi ?
<?php
echo $db->getAttribute(PDO::ATTR_DRIVER_NAME);

?> 
J'irais dans le sens de victor; si l'erreur dit qu'aucune DB n'est sélectionnée (vérifie au passage que le nom de la BD est valide (accents et autre brols)), c'est qu'il y a un souci de ce côté.

par Victor BRITO » 23 nov. 2007, 20:12

Que vaut ta constante CONST_CONNECT_DSN ? L'as-tu bien définie comme suit :
define ('CONST_CONNECT_DSN', 'mysql:host=localhost;dbname=ta_base');
?

par Victor BRITO » 23 nov. 2007, 20:01

Et vérifie ce que dit PhpMyAdmin lorsque tu essaies ta requête SQL. :wink:

par simane » 23 nov. 2007, 20:00

Voici mon Momox
try
		{
		  $db = new PDO (CONST_CONNECT_DSN, CONST_CONNECT_DB_LOGIN, CONST_CONNECT_DB_PASSWORD);
		}
		catch (PDOException $e)
		{
		  echo "Erreur de connexion à la base de données".CONST_CONNECT_DB_NAME."---
		  ".$e -> getMessage();
		  die();
		}
		
		//*********************************************A effacer ********************
		$sql = "SELECT profil FROM user_profil ";
		$requete = $db -> query ($sql) ;
		if(!empty ($resultat))
			$resultat = $requete -> fetchAll ();
		else
		{
			 echo "Erreur code =".$db->errorCode()."<br/> ";
			 var_dump($db->errorInfo()); 
		}
		// Aucun résultat
		if (empty ($resultat))
		 echo 'Aucun résultat retourné';
		
		// Sinon
		else
		{
		  foreach ($resultat as $valeur)
		  {
			echo $valeur['profil']."\n";
		  }
		} 
Tu voies bien que j'ai appelé la requête de selection de la base de donnée qui est:
$db = new PDO (CONST_CONNECT_DSN, CONST_CONNECT_DB_LOGIN, CONST_CONNECT_DB_PASSWORD);
Le code d'erreur correspondant qui est
3D000 équivaut au messsage 'Invalaide Schém". Y a t il un schéma à choisir pour PDO?

par momox » 23 nov. 2007, 19:45

Regarde le tableau d'erreur (No database selected).
Tu as oublié de séléctionner ta base de données ;)

par simane » 23 nov. 2007, 19:08

Quand je fait ceci après éxécution de ma requête:
 var_dump($db->errorInfo());
Je reçoi ceci:
array(3) { [0]=>  string(5) "3D000" [1]=>  int(1046) [2]=>  string(20) "No database selected" }
//le code "3D000"= 'invalide schéma"
Qu'est ce qui peut être à l'origine de cette erreur?

par simane » 23 nov. 2007, 17:42

Lorsque j'essaye d'éxécuter la requête suivante
$sql = "SELECT profil FROM user_profil ";
		$requete = $db -> query ($sql) ;
J'ai ce code d'erreur et l'erreur info suivants (retournés par les fonctions

Code : Tout sélectionner

PDO::errorCode() et PDO::errorInfo()
):
Erreur code =3D000
Erreur infon = Array
Quelqu'un sait ce qui est à l'origine de l'erreur?
[/code]