在使用PHP导出CSV文件时,有一些记录不会包含在内。它似乎在转移时,即使仍有记录要输出,它也会停止。有什么问题?在PHP中导出CSV文件
回答
我在将CSV内容导出到数据库时遇到了一些错误。 大部分问题是因为数据库在保存记录时失败。 例如您的数据是这样的:
"1;me;24"
"2;you;"
"3;they;26"
"4;she;27"
"5;it;28"
如果你的数据库有约束的行不能为空,所以数据库将引发错误的PHP。并且在将所有记录记录到数据库之前,php将停止循环。
解决方案,您可以在您的代码中添加异常,当数据库无法插入数据库时,它将继续循环,直到它完成记录到您的数据库的csv。
<?php
error_reporting(E_ERROR);
class MySQLException extends Exception
{
public function __construct($message,$code=0){
parent::__construct($message,$code);
}
}
class Mysql
{
private $_DB_HOST;
private $_DB_USERNAME;
private $_DB_PASSWORD;
private $_DB_NAME;
private $_DB_SELECT_STATE;
private $_CONNECTION;
public function __construct($host, $username, $password, $dbname) {
$this->_DB_HOST = $host;
$this->_DB_USERNAME = $username;
$this->_DB_PASSWORD = $password;
$this->_DB_NAME = $dbname;
$this->__connect();
$this->__select_db();
}
private function __connect() {
$this->_CONNECTION = mysql_connect($this->_DB_HOST, $this->_DB_USERNAME, $this->_DB_PASSWORD);
if(!$this->_CONNECTION) {
throw new MySQLException('Could Not Connect to database with given setting');
}
}
private function __select_db() {
$this->_DB_SELECT_STATE = mysql_select_db($this->_DB_NAME , $this->_CONNECTION);
if(!$this->_DB_SELECT_STATE) {
throw new MySQLException('Could Not select to database with given setting');
}
}
public function query($query){
if(($result = mysql_query($query, $this->_CONNECTION) )) {
return $result;
} else {
$command = explode(' ', trim($query));
throw new MySQLException('Could not do' . $command . ' query');
}
}
}
// connect to database
$database = new Mysql("localhost", "username", "password", "test");
// example your csv file before parsed
$csv = array("1;me;24", "2;you;", "3;they;26", "4;she;27", "5;it;28");
for($i = 0; $i < sizeof($csv); $i++){
try{
$row = explode(";", $csv[$i]);
$database->query("INSERT INTO testtable (id, name, age) VALUES (".$row[0].", '".$row[1]."', ".$row[2].")");
} catch (MySQLException $e){
echo 'We could not insert to the database <br>';
}
}
,如果你不添加任何尝试捕捉,您的代码将在插入第二个查询
"1;me;24"
"2;you;"
"3;they;26"
"4;she;27"
"5;it;28"
停下,但该代码保持循环,直到结束解析,如果你捕获该异常。
“当数据库无法插入数据库时,您可以在代码中添加异常” - 您是什么意思?在我的插入sql语句中添加一些东西?你能进一步解释吗?谢谢! – anonymous123 2010-08-20 07:50:26
好吧,我将添加示例实现 – 2010-08-20 17:56:08
感谢您的回复和示例,Swing Magic。 我不认为这个问题与插入记录到数据库有关,因为当我导出CSV文件时,我不做插入查询,我只是使用select查询来检索存储在数据库。顺便说一下,在导出CSV文件时,有一些datapickers允许用户选择日期范围。这个问题会在这里发生,但是,如果我只选择一个日期,它会正常工作。只有当我选择日期范围时才会出现问题。 – anonymous123 2010-08-23 02:27:11
- 1. 在PHP和JavaScript中导出csv文件
- 2. MySQL PHP CSV文件导出
- 3. 导出CSV文件
- 4. csv导出文件
- 5. PHP Parse.com将表导出为CSV文件
- 6. 在导出的CSV文件在PowerShell中
- 7. 在导出csv文件在php中的问题
- 8. 在csv文件中导出oracle表
- 9. 在PHP中导出“用户名”的CSV文件
- 10. PHP导入CSV文件
- 11. 从CSV文件导入PHP
- 12. CSV文件导出问题
- 13. 从Codeigniter导出CSV文件
- 14. 在django上导出csv文件
- 15. 在android中导入和导出CSV文件
- 16. 导出为CSV与PHP
- 17. 通过PHP导出到CSV
- 18. jquery php和csv导出
- 19. 将php导出到csv
- 20. PHP到csv导出错误
- 21. PHP的CSV导出功能
- 22. 在HTML文件中导出PHP表格
- 23. 将CSV文件导入到我的PHP
- 24. csv文件导入数据库,php
- 25. 在PHP中将CSV文件导入到Mysql数据库中
- 26. 如何使用PHP将变量列导出到CSV文件?
- 27. 如何使用php导出sql数据的csv文件?
- 28. PHP:将数据库表格导出为CSV文件
- 29. 使用PHP将MySQL数据导出到CSV文件
- 30. 没有错误,也没有文件导出。 PHP MySQL到CSV
哇这是一个模糊的描述问题。您能否请...给我们一些您遇到的问题代码? – 2010-08-18 07:09:35
请在允许我们理解您的问题的表单中编辑您的问题。 – Raz 2010-08-18 07:10:38
此外,请添加一些代码以显示您如何执行此操作,并确保启用了错误报告。当我将数据库中的文件导出为.csv文件时,列出脚本给出的任何错误 – Gordon 2010-08-18 07:13:39