PhP: Comment passer d'une BDD SQL à SQLite?

PhP: Comment passer d'une BDD SQL à SQLite? - PHP - Programmation

Marsh Posté le 06-06-2012 à 15:47:20    

Bonjour à tous,
 
Voila mon super soucis, j'ai un backoffice créé pour les besoins d'un projet, qui fonctionne impeccablement bien en SQL. Le problème est que je viens d'apprendre que l'archi avait changé et qu'il fallait passer sur du SQLite... Super! Mon soucis du coup: j'ai cherché des tutos sur le net, mais on dit beaucoup de chose différentes, mais rien de vraiment concret, et je ne vois pas comment faire migrer mon site et surtout si ça représente beaucoup de travail ou non.
 
Voici le code de connexion actuel (SQL) de la BDD:

Code :
  1. <?php
  2. abstract class AbstractPdoManager {
  3. const DRIVER = 'mysql';
  4. const HOST = 'localhost';
  5. const PORT = '3306';
  6. const DATABASE_NAME = 'youfood';
  7. const USER = 'root';
  8. const PASSWORD = '';
  9. protected $pdo;
  10. public function __construct() {
  11.   $dsn = self::DRIVER.':host='.self::HOST.';port='.self::PORT.';dbname='.self::DATABASE_NAME;
  12.   $this->pdo = new PDO($dsn, self::USER, self::PASSWORD);
  13. }
  14. }
  15. ?>


 
savez vous quoi faire pour m'aider?  
 
Merci!


---------------
On part en live! https://www.twitch.tv/inforea, Sujet : [VDS] Rien [ACH] P4G HS + Epaves LENOVO/FUJITSU ville: Lyon
Reply

Marsh Posté le 06-06-2012 à 15:47:20   

Reply

Marsh Posté le 06-06-2012 à 16:03:58    

Tu utilises pdo partout  ?  
c'est déjà bien, il faut que tu changes  ta chaîne de connexion pour la chaine de connexion sqllite

Code :
  1. $dbh = new PDO("sqlite:/path/to/database.sdb" );


 
Ensuite, il faut que tu repasse sur chacune de tes requêtes et que tu vérifie qu'elles fonctionnent avec sqlite. Quelques unes des différences à rechercher : http://stackoverflow.com/questions [...] ces-in-sql


---------------

Reply

Marsh Posté le 06-06-2012 à 16:06:26    

pardon, oui, je code en orienté objet, et passe par PDO de partout.
 
Concernant du coup cette page de connexion, cette unique ligne suffit? J'ai essayé de faire quelques bricollage (avec SQLiteDatabase ou sqlite_open) et malheureusement, aucune de ces deux fonction n'est trouvée je me suis dit qu'il manquais peut être un Include mais je n'ai pas trouvé quoi rajouté? Je vais déjà tester avec ça pour la connexion et je viens te dire, merci!


---------------
On part en live! https://www.twitch.tv/inforea, Sujet : [VDS] Rien [ACH] P4G HS + Epaves LENOVO/FUJITSU ville: Lyon
Reply

Marsh Posté le 06-06-2012 à 16:39:24    

haha, du coup, j'ai un gros fuck sur toutes mes données pdo que j'avais entrées x)
 
pour mettre une fonction en application, je me débrouillais comme ça pour l'instant: (exemple sur une fonction lambda)

Code :
  1. public function Authenticate($Username, $MDP)
  2. {
  3.  $query = $this->pdo->prepare('SELECT * FROM client WHERE Username=:username');
  4.  $query->bindValue(':username', $Username);
  5.  $query->execute();
  6.  $result = $query->fetch(PDO::FETCH_OBJ);
  7.  if($result && $result->MDP == md5($MDP)) {
  8.   return new Client($result->ID,$result->Username,$result->Nom,$result->Prenom, $result->Telephone, $result->Structure, $result->Fonction, $result->Adresse, $result->MDP, $result->Mail);
  9.  }
  10.  else
  11.  {
  12.   return null;
  13.  }
  14. }


 
j'ai une erreur sur "pdo" (ligne 3 ici) et si je vire PDO, il ne reconnais plus le Prepare :'(


Message édité par thojolu le 06-06-2012 à 16:39:58

---------------
On part en live! https://www.twitch.tv/inforea, Sujet : [VDS] Rien [ACH] P4G HS + Epaves LENOVO/FUJITSU ville: Lyon
Reply

Marsh Posté le 06-06-2012 à 16:41:58    

et c'est quoi le message d'erreur  ?


---------------

Reply

Marsh Posté le 06-06-2012 à 17:18:51    

alors en fait j'en ai deux du coup, sur la fonction PDO et prepare  
Notice: Undefined property: PdoClientManager::$pdo in C:\wamp\www\YouFood\classestest\manager\pdo\PdoClientManager.class.php on line 3
Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\YouFood\classestest\manager\pdo\PdoClientManager.class.php on line 3
 
Vraiment merci de ton aide, car j'en ai trop marre ^^'


---------------
On part en live! https://www.twitch.tv/inforea, Sujet : [VDS] Rien [ACH] P4G HS + Epaves LENOVO/FUJITSU ville: Lyon
Reply

Marsh Posté le 07-06-2012 à 14:29:56    

d'autres idées? J'ai fait un peut le tour et j'avoue que je commence à sécher sur les possibilité de résoudre ce problème :/
 
En fait, il me semble que ma fonction de connexion à la BDD ne marche pas, voici ce que comprends mon AbstractPdoManager:

Code :
  1. <?php
  2. abstract class AbstractPdoManager {
  3. protected $pdo;
  4. public function __construct() {
  5. $this->pdo = new PDO("sqlite:C:\wamp\www\YouFood\youfood.sqlite" );
  6. }
  7. }
  8. ?>


 
fais-je ça bien?


Message édité par thojolu le 07-06-2012 à 14:38:25

---------------
On part en live! https://www.twitch.tv/inforea, Sujet : [VDS] Rien [ACH] P4G HS + Epaves LENOVO/FUJITSU ville: Lyon
Reply

Marsh Posté le 07-06-2012 à 16:38:22    

Attention, évolution, maintenant, je n'ai plus d'erreur quand je valide, mais ça ne me logue pas l'utilisateur :'(
 
voila le code complet:
 

Code :
  1. public function Authenticate($Username, $MDP)
  2. {
  3.  $dbh = new PDO("sqlite:C:\wamp\www\YouFood\youfood.sqlite" );
  4.  $stmt = $dbh->prepare('SELECT * FROM client WHERE Username=:username');
  5.  $stmt->bindValue(':username', $Username);
  6.  $result = $stmt->fetch(PDO::FETCH_OBJ);
  7.  if($result && $result->MDP == $MDP) {
  8.  return new Client($result->ID,$result->Username,$result->Nom,$result->Prenom, $result->Telephone, $result->Structure, $result->Fonction, $result->Adresse, $result->MDP, $result->Mail);
  9.  }
  10.  else
  11.  {
  12.  return null;
  13.  }
  14. }


 
je comprends plus rien  :pt1cable:


Message édité par thojolu le 07-06-2012 à 16:38:45

---------------
On part en live! https://www.twitch.tv/inforea, Sujet : [VDS] Rien [ACH] P4G HS + Epaves LENOVO/FUJITSU ville: Lyon
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed