Je comprend pas bien PDO

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 : Je comprend pas bien PDO

par Maitrepylos » 12 déc. 2006, 16:48

Effectivement, je n'arrive pas à utiliser le PDO, pour sqlite, parce que Pear/Pecl ne travaille que sur sqlite3.

Bon ben j'attendrais une mise à jour majeur de mon OS pour pouvoir apprendre.

Merci de ton aide

par Ajoloca » 08 déc. 2006, 16:30

Je suis sous Dapper/Server.

Et il n'ont pas encore fais la mise à jour vers Php 5.2
Je ne connais pas du tout!, je savias même pas que ça existait.

Pour revenir à ton PB, change le DSN, essaie ceci
$bdd = new PDO('sqlite2:../sqlite/basedb.sqlite', '', '');
Si ça ne marche pas tu devras utiliser, soit les fonctions clasiques (sqlite_*) très proches de celles de MySQL ou bien les class SQLite.

par Maitrepylos » 08 déc. 2006, 16:25

Je suis sous Dapper/Server.

Et il n'ont pas encore fais la mise à jour vers Php 5.2

par Ajoloca » 08 déc. 2006, 16:15

Re,
Tu utilises quel OS ? (@Albat : Pas de tibia, sinon c'est la barre de ...)

par Maitrepylos » 08 déc. 2006, 16:08

Oui effectivement j'ai le driver pour Pdo_Sqlite3, mais je possède sqlite 2.8, je vais voir comment upgrader ce sqlite vers le 3.

Merci de ton aide.

MaitrePylos

par Ajoloca » 08 déc. 2006, 15:55

Re,

Il y a actuellement deux versions majeures de SQLite, la 2 et la 3

Les drivers de connexion ne sont pas les mêmes

Pour la 2 $dns = 'sqlite2:.....'
Pour la 3 $dns = 'sqlite:.....'

Le message d'erreur te dis que ton fichier est crypté ou bien c'est pas un fichier base de données (SQLite).

par Maitrepylos » 08 déc. 2006, 15:51

heu :cry:

Code : Tout sélectionner

Array ( [0] => HY000 [1] => 26 [2] => file is encrypted or is not a database )
je confirme que ma base existe.

Sur le net il parle d'une version spécial sqlite3 pour pdo?

par Ajoloca » 08 déc. 2006, 15:32

Re,
Ajoute ces lignes, elles te donneront plus de précisions.
else{
   echo"<pre>"; 
   print_r($bdd->errorInfo());
   echo"</pre>"; 
   die('ERR_SQL');
}

par Maitrepylos » 08 déc. 2006, 15:26

Salut,

J'avais tester auparavant ma connection.

En suivant ta proposition, j'obtient 'ERR_SQL'

Je ne comprend pas pourquoi il refuse de faire l'action?

par Ajoloca » 08 déc. 2006, 15:16

Bonjour,

Tu es sur que ta connexion fonctionne ?
Tu ne le testes même pas.

Avant de créer ta propre class, commence par le faire de façon procédurale
<?php
try{
   $bdd = new PDO('sqlite:../sqlite/basedb.sqlite', '', '');
}
catch (PDOException $e){
   die($e->getMessage());
}

$sql ="SELECT motssolution FROM motsphrase";
if(($result = $bdd->query($sql)) !== false){
   $laTotal = $result->fetchAll();
   echo"<pre>";
   var_dump($laTotal);
   echo"</pre>";
}
else{
   die('ERR_SQL');
}
?>

Je comprend pas bien PDO

par Maitrepylos » 08 déc. 2006, 12:04

Bonjour,

J'esaye de suivre les tutos se trouvant sur le net, mais je ne comprend pas bien les erreurs de sortie.

J'ai la class suivante :
<?php
class motsCaches {

	function __construct()
	{

		$bdd = new PDO('sqlite:../sqlite/basedb.sqlite');

		$sql ="SELECT motssolution FROM motsphrase";
		$result = $bdd->query($sql);
		$laTotal = $result->fetchAll();

		echo"<pre>";
		var_dump($laTotal);
		echo"</pre>";

	}
}


?>

Puis j'instancie cette class
<php
$objet = new motsCaches();
?>
J'obtient l'erreur suivante

Code : Tout sélectionner

Fatal error: Call to a member function fetchAll() on a non-object
Pourtant j'ai bien Pdo, installer par Pecl sur php 5.1

Merci de votre aide