在使用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. PHP導出csv文件
- 3. PHP - 導出CSV文件
- 4. MySQL PHP CSV文件導出
- 5. 導出CSV在PHP
- 6. 導出CSV文件
- 7. csv導出文件
- 8. PHP文件 - 導出XLS,而不是CSV
- 9. 導出一個空的CSV文件PHP
- 10. PHP Parse.com將表導出爲CSV文件
- 11. 用php格式導出csv文件
- 12. 導出PHP CSV文件列不顯示
- 13. 在導出的CSV文件在PowerShell中
- 14. 在導出csv文件在php中的問題
- 15. 在csv文件中導出oracle表
- 16. 在Wordpress中導出CSV文件
- 17. 在PHP中導出「用戶名」的CSV文件
- 18. 從CSV文件導入PHP
- 19. PHP導入CSV文件
- 20. CSV文件導出問題
- 21. 從Codeigniter導出CSV文件
- 22. 導出到csv文件
- 23. WooCommerce導出CSV文件
- 24. 導出大的CSV文件
- 25. 導出到.csv文件
- 26. 在php中導出爲csv格式
- 27. 我的PHP代碼出現在導出的CSV文檔中
- 28. 導出MySQL表到CSV文件中
- 29. 在django上導出csv文件
- 30. 無法在PowerShell中導出csv,爲空的CSV文件
哇這是一個模糊的描述問題。您能否請...給我們一些您遇到的問題代碼? – 2010-08-18 07:09:35
請在允許我們理解您的問題的表單中編輯您的問題。 – Raz 2010-08-18 07:10:38
此外,請添加一些代碼以顯示您如何執行此操作,並確保啓用了錯誤報告。當我將數據庫中的文件導出爲.csv文件時,列出腳本給出的任何錯誤 – Gordon 2010-08-18 07:13:39