2010-03-25 1 views
2
// First, prepare the statement, using placeholders 
$query = "SELECT * FROM tableName"; 
$stmt = $this->connection->prepare($query); 

// Execute the statement 
$stmt->execute(); 
var_dump($stmt->fetch(PDO::FETCH_ASSOC)); 

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
{ 
echo "Hi"; 
// Export every row to a file 
fputcsv($data, $row); 
} 

Est-ce bonne façon de le faire et si oui que pourquoi dois-je obtenir la valeur false pour var_dump et que cela ne va pas dans la boucle while et ne pas écrire dans le fichier csv.Impossible d'exécuter fetch (PDO :: FETCH_ASSOC) et non mise à jour de fichier csv

Des suggestions?

+0

Qu'est-ce que vous obtenez lorsque vous var_dump (error_get_last()) après que vous faites cela? – SeanJA

+0

@SeanJA: valeur "Null". – Rachel

Répondre

1

Une chose qui manque est que vous devez d'abord ouvrir le fichier csv:

$fp = fopen('file.csv', 'w'); 

alors vous pouvez y insérer des données:

fputcsv($fp, $data); 

Quant à la var_dump imprimer faux, vous devrez fournir plus d'informations sur les objets que vous utilisez réellement je pense. (C.-à-: ce qui est $ this-> connexion?)

Je ne sais pas si cela va aider, mais essayer de le faire sans $ this-> connexion:

$config['database'] = 'sakila'; 
$config['host'] = 'localhost'; 
$config['username'] = 'root'; 
$config['password'] = ''; 

$d = new PDO('mysql:dbname='.$config['database'].';host='.$config['host'], $config['username'], $config['password']); 
$query = "SELECT * FROM actor"; 
$stmt = $d->prepare($query); 

// Execute the statement 
$stmt->execute(); 

var_dump($stmt->fetch(PDO::FETCH_ASSOC)); 

$data = fopen('file.csv', 'w'); 

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
{ 
    echo "Hi"; 
    // Export every row to a file 
    fputcsv($data, $row); 
} 
+0

J'appelle cette fonction de la fonction d'une autre classe et j'ouvre le fichier et je passe le flot de données à cette fonction, puis je poursuis le processus. Je ne suis pas sûr de savoir pourquoi cela se produit. – Rachel

+0

Fondamentalement '$ this-> connection' pointe vers une connexion PDO sous-jacente qui est présente dans une autre classe Dao que j'utilise dans ma classe. – Rachel

+0

Peut-être que vous n'êtes pas connecté à la base de données et qu'il échoue silencieusement? – SeanJA

Questions connexes