2017-08-30 2 views
-3

J'essaie d'utiliser SQLite en utilisant un exemple que j'ai trouvé ici, mais je n'arrive pas à le faire fonctionner. Je veux inclure pour exiger un mot de passe de base de données pour le décoder.comment mettre le code inphp de mot de passe à sqlite?

Je suis message d'erreur:

Fatal error: Uncaught exception 'Exception'

Avec un message SQLite3::open() expects parameter 2 to be long ... etc

<?php 
    class MyDB extends SQLite3 
    { 
     function __construct() 
     { 
     $this->open('mySQLiteDB.sqlite','','password'); 
     } 
    } 
    $db = new MyDB(); 

    if(!$db){ 
     echo $db->lastErrorMsg(); 
    } else { 
     echo "Opened database successfully\n"; 
    } 
$sql =<<<EOF 
     SELECT * FROM Stock WHERE Nom='CAF'; 
EOF; 

    $ret = $db->query($sql); 
    while($row = $ret->fetchArray(SQLITE3_ASSOC)){ 
     echo "Nom = ". $row['Nom'] . "\n"; 
    } 
    echo "Operation done successfully\n"; 
    $db->close();    
?> 

Répondre

3

Le message d'erreur est tout à fait clair. Le second paramètre (flags) pour le open() -method doit être un entier. Vous passez actuellement une chaîne vide.

Change:

$this->open('mySQLiteDB.sqlite','','password'); 

à utiliser les drapeaux par défaut:

$this->open('mySQLiteDB.sqlite', SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, 'password'); 

Vous pouvez en savoir plus en the documentation.

+0

Salut merci pour votre aide. Mais ne fonctionne pas trop ... J'ai reçu ce message maintenant: Avertissement: SQLite3 :: query() [sqlite3.query]: Impossible de préparer l'instruction: 26, le fichier est chiffré ou n'est pas une base de données dans/home/... – Frenchy90

+0

@ Frenchy90 - C'est un problème distinct. Êtes-vous sûr que c'est en fait une sqlite3 db et pas une version antérieure? Le pilote sqlite3 n'est pas rétrocompatible. Cependant, si cette réponse résout votre problème initial (le message d'erreur que vous avez reçu), alors vous devriez l'accepter. –

+0

ill essayer pour tester la compatibilité au serveur: Et j'ai reçu un message: SQLite 3 soutenu, Normalement c'est bon? – Frenchy90