使用PHP创建包含表中所有数据(*)的TXT文件

使用PHP创建包含表中所有数据(*)的TXT文件,php,sql,sqlite,file-put-contents,Php,Sql,Sqlite,File Put Contents,我正在尝试用PHP创建一个TXT文件。这个很好用。不幸的是,我似乎没有正确的语法,因为没有使用file\u put\u contents函数插入内容,将SQLite表中的数据放入TXT文件 <?php $db = new SQLite3('sshTunnel.sqlite'); $results = $db->query('SELECT * FROM mydata'); $file = 'D:\test.txt'; file_put_contents($file, $results

我正在尝试用PHP创建一个TXT文件。这个很好用。不幸的是,我似乎没有正确的语法,因为没有使用
file\u put\u contents
函数插入内容,将SQLite表中的数据放入TXT文件

<?php
$db = new SQLite3('sshTunnel.sqlite');
$results = $db->query('SELECT * FROM mydata');

$file = 'D:\test.txt';
file_put_contents($file, $results);
?>

文件已写入,但包含
0字节

尝试输出缓冲:

ob_start() ;
var_dump($results) ;
file_put_contents($file, ob_get_clean()) ;
尝试输出缓冲:

ob_start() ;
var_dump($results) ;
file_put_contents($file, ob_get_clean()) ;

如果有行,
$results
将包含SQLite3Result对象。您仍然需要在结果集上循环以获取数据

例如:

while ($row = $results->fetchArray()) {
    file_put_contents($file, implode(', ', $row), FILE_APPEND);
}

请注意,这只是一个示例,如果需要,可以使用专用函数来编写CSV。

如果有行,
$results
将包含SQLite3Result对象。您仍然需要在结果集上循环以获取数据

例如:

while ($row = $results->fetchArray()) {
    file_put_contents($file, implode(', ', $row), FILE_APPEND);
}

请注意,这只是一个示例,如果您需要,可以使用专用函数来编写CSV。

$results
将包含一个布尔值或SQLite3Result对象。我使用此方法转储了各种数据库结果对象(从来没有专门转储SQLite3Result)。输出总是可理解的。但是,循环方法可以很好地控制文件的结构。因此,如果您想快速而不干净地查看数据,请使用输出缓冲;如果您想将文件用作另一个进程的输入或CSV或其他任何内容,请使用循环。
$results
将包含布尔值或SQLite3Result对象。我使用此方法转储了各种数据库结果对象(从来没有专门转储SQLite3Result)。输出总是可理解的。但是,循环方法可以很好地控制文件的结构。因此,如果你想快速而肮脏地查看数据,可以使用输出缓冲;如果你想将文件用作另一个进程的输入,或者作为CSV或其他任何东西,可以使用循环。很好,这似乎很有效。结果未格式化。是否有一种简单的方法来编写结构化的内容?同样,如果您转储
$row
对象,您可以看到它的内部结构,并将它可能包含的任何字段格式化为您选择的结构。选项卡如何?现在,我甚至得到了那些,现在已经被删除了。这怎么可能?@gpuk360如果它们在结果中,它们不会被删除。它们可能会被软删除。@apokryfos你是对的。这个问题解决了。谢谢太好了,好像有用。结果未格式化。是否有一种简单的方法来编写结构化的内容?同样,如果您转储
$row
对象,您可以看到它的内部结构,并将它可能包含的任何字段格式化为您选择的结构。选项卡如何?现在,我甚至得到了那些,现在已经被删除了。这怎么可能?@gpuk360如果它们在结果中,它们不会被删除。它们可能会被软删除。@apokryfos你是对的。这个问题解决了。谢谢