Home Backend Development PHP Tutorial Mysql数据库导出替Excel(ODBC驱动)

Mysql数据库导出替Excel(ODBC驱动)

Jun 13, 2016 am 10:42 AM
gt mysql quot this

Mysql数据库导出为Excel(ODBC驱动)

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php date_default_timezone_set('Asia/Shanghai');        /*     [email&#160;protected]:[email&#160;protected]     *在本程序不侵犯任何公司或个人权利的情况下:     *本程序遵循GPL v2许可证分发,详情查看http://www.gnu.org/copyleft/lesser.html     *如果本程序已经使用他人专利,本程序将按照专利持有人许可进行使用     *如果本程序侵犯了您的专利,请及时联系作者(上方邮箱即可),本人及时会做出更正声明,如有不便敬请谅解。     *本类实现:     *只要填写正确的mysql数据库、表信息自动将Mysql数据库的内容导出为Excel文件,一键完成,需要ODBC的支持,此为Windows版本     *注意:填写的时候Excel文件只需要填写文件名即可,导出Excel为是2003版本。     *          因为本人水平有限,必须按照示例程序的样本填写完毕方可顺利执行     *          本版本中存在已知瑕疵:     *          1、Mysql数据库出错会输出错误信息。Release版本请自行删除保证服务器信息安全     *          2、odbc连接部分没有做出错误处理,Release版本请自行添加错误处理部分(mysql一样)    */    class mysql2Xls{        private $currDir;        //当前目录名使用dirname(__FILE__)获取        private $srcData;    //Mysql获取的数据数组,此为2维数组        private $srcColumn;    //Mysql数据库的列名,为了将列名对应到Excel文件中的第一行,此属性为1维数组        public $xlsName;            //Excel文件的文件名,不需要添加后缀,后缀是自动添加的,如果需要设置后缀,请在setXlsName函数中更改后缀        private $host;                //本行一下五行为Mysql的连接设置        private $userName;        private $pwd;        private $dbName;        private $tbName;                public function __construct(){            $this->currDir = dirname(__FILE__);        }                /* 获取Mysql的列名称 */        public function getSrcColumn(){            $handle = @mysql_connect($this->host,$this->username,$this->pwd);            $this->srcColumn = array();            if(is_bool($handle)){                echo "====**====<br>";                echo "Mysql连接出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            $ret = @mysql_select_db($this->dbName,$handle);            if($handle == FALSE){                echo "====**====<br>";                echo "Mysql选择数据库出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            $ret = @mysql_query('describe '.$this->tbName,$handle);            if(is_bool($ret)){                echo "====**====<br>";                echo "Mysql语句执行出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            while(($data = mysql_fetch_array($ret)) != FALSE){                array_push($this->srcColumn,$data['Field']);            }            mysql_free_result($ret);            mysql_close($handle);            return $this->srcColumn;        }                /* 获取指定的Mysql数据库表中的内容 */        public function getSrcData(){            $handle = @mysql_connect($this->host,$this->username,$this->pwd);            $this->srcData = array();            if(is_bool($handle)){                echo "====**====<br>";                echo "Mysql连接出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            $ret = @mysql_select_db($this->dbName,$handle);            if($handle == FALSE){                echo "====**====<br>";                echo "Mysql选择数据库出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            $ret = @mysql_query('select * from '.$this->tbName,$handle);            if(is_bool($ret)){                echo "====**====<br>";                echo "Mysql语句执行出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            while(($data = mysql_fetch_array($ret)) != FALSE){                array_push($this->srcData,$data);            }            mysql_free_result($ret);            mysql_close($handle);            return $this->srcData;        }                /* 主力部分 将Mysql数据库中的内容导出为Excel文件 */        public function m2Xls(){            $handle = odbc_connect("Driver={MicroSoft Excel Driver (*.xls)};READONLY=false;CREATE_DB=\"".$this->xlsName."\";Dbq=".$this->xlsName,"","");            $sql = 'create table '.$this->tbName.'(';            foreach($this->srcColumn as $value){                $sql .= ($value." text,");            }            $sql = substr($sql,0,strlen($sql)-1);            $sql .= ")";            $ret = odbc_exec($handle,$sql);            //以上内容是创建一个Excel文件 并将Mysql的列转移到Excel文件中去。            foreach($this->srcData as $value){                $sql = 'insert into ['.$this->tbName.'$] values(';                for($i=0;$i<count .="iconv("UTF-8","GB2312","'".$value[$i]."',");" substr echo odbc_exec public function setmysqlargs>host = $host;            $this->username = $username;            $this->pwd = $pwd;            $this->dbName = $dbName;            $this->tbName = $tbName;        }                /* 设置Excel数据库的名称 */        public function setXlsName($xlsName){            $this->xlsName = $this->currDir."\\".$xlsName.".xls";            return $this->xlsName;        }    }        /*以下部分是测试功能的,可删除*/    header("Content-Type:text/html;charset=UTF-8");    $mysql2xls = new mysql2Xls();    $mysql2xls->setMysqlArgs('localhost','root','******','others','zhuifeng');    $mysql2xls->setXlsName('test');    $mysql2xls->getSrcColumn();    $mysql2xls->getSrcData();     $mysql2xls->m2Xls();?><div class="clear">
                 
              
              
        
            </div></count>
Copy after login
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

The relationship between mysql user and database The relationship between mysql user and database Apr 08, 2025 pm 07:15 PM

In MySQL database, the relationship between the user and the database is defined by permissions and tables. The user has a username and password to access the database. Permissions are granted through the GRANT command, while the table is created by the CREATE TABLE command. To establish a relationship between a user and a database, you need to create a database, create a user, and then grant permissions.

MySQL: The Ease of Data Management for Beginners MySQL: The Ease of Data Management for Beginners Apr 09, 2025 am 12:07 AM

MySQL is suitable for beginners because it is simple to install, powerful and easy to manage data. 1. Simple installation and configuration, suitable for a variety of operating systems. 2. Support basic operations such as creating databases and tables, inserting, querying, updating and deleting data. 3. Provide advanced functions such as JOIN operations and subqueries. 4. Performance can be improved through indexing, query optimization and table partitioning. 5. Support backup, recovery and security measures to ensure data security and consistency.

Can I retrieve the database password in Navicat? Can I retrieve the database password in Navicat? Apr 08, 2025 pm 09:51 PM

Navicat itself does not store the database password, and can only retrieve the encrypted password. Solution: 1. Check the password manager; 2. Check Navicat's "Remember Password" function; 3. Reset the database password; 4. Contact the database administrator.

Query optimization in MySQL is essential for improving database performance, especially when dealing with large data sets Query optimization in MySQL is essential for improving database performance, especially when dealing with large data sets Apr 08, 2025 pm 07:12 PM

1. Use the correct index to speed up data retrieval by reducing the amount of data scanned select*frommployeeswherelast_name='smith'; if you look up a column of a table multiple times, create an index for that column. If you or your app needs data from multiple columns according to the criteria, create a composite index 2. Avoid select * only those required columns, if you select all unwanted columns, this will only consume more server memory and cause the server to slow down at high load or frequency times For example, your table contains columns such as created_at and updated_at and timestamps, and then avoid selecting * because they do not require inefficient query se

How to view mysql How to view mysql Apr 08, 2025 pm 07:21 PM

View the MySQL database with the following command: Connect to the server: mysql -u Username -p Password Run SHOW DATABASES; Command to get all existing databases Select database: USE database name; View table: SHOW TABLES; View table structure: DESCRIBE table name; View data: SELECT * FROM table name;

How to create navicat premium How to create navicat premium Apr 09, 2025 am 07:09 AM

Create a database using Navicat Premium: Connect to the database server and enter the connection parameters. Right-click on the server and select Create Database. Enter the name of the new database and the specified character set and collation. Connect to the new database and create the table in the Object Browser. Right-click on the table and select Insert Data to insert the data.

How to copy tables in mysql How to copy tables in mysql Apr 08, 2025 pm 07:24 PM

Copying a table in MySQL requires creating new tables, inserting data, setting foreign keys, copying indexes, triggers, stored procedures, and functions. The specific steps include: creating a new table with the same structure. Insert data from the original table into a new table. Set the same foreign key constraint (if the original table has one). Create the same index. Create the same trigger (if the original table has one). Create the same stored procedure or function (if the original table is used).

How to view database password in Navicat for MariaDB? How to view database password in Navicat for MariaDB? Apr 08, 2025 pm 09:18 PM

Navicat for MariaDB cannot view the database password directly because the password is stored in encrypted form. To ensure the database security, there are three ways to reset your password: reset your password through Navicat and set a complex password. View the configuration file (not recommended, high risk). Use system command line tools (not recommended, you need to be proficient in command line tools).

See all articles