{"id":46,"date":"2006-08-19T18:59:49","date_gmt":"2006-08-19T18:59:49","guid":{"rendered":"http:\/\/www.dereckson.be\/blog\/2006\/08\/19\/php-mysql-quickly-import-and-export-data\/"},"modified":"2006-08-19T18:59:49","modified_gmt":"2006-08-19T18:59:49","slug":"php-mysql-quickly-import-and-export-data","status":"publish","type":"post","link":"https:\/\/www.dereckson.be\/blog\/2006\/08\/19\/php-mysql-quickly-import-and-export-data\/","title":{"rendered":"PHP\/MySQL :: Quickly import and export data"},"content":{"rendered":"<p>To import or export MySQL dumps, we can use mysql and mysqldump commands. Let&#8217;s call them from PHP.<br \/>\n<!--more--><br \/>\n<code> <span style=\"color: #000000\"> <span style=\"color: #0000BB\">&lt;?php<br \/><\/span><span style=\"color: #FF8000\"> \/\/ Import and export MySQL dump in PHP, using mysql client command line tools<br \/>\n \/\/ (c) 2006, S\u00e9bastien Santoro aka Dereckson, released in public domain<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #FF8000\">\/\/Connections&nbsp;info&nbsp;(of&nbsp;course&nbsp;we'll&nbsp;use&nbsp;config.php&nbsp;or&nbsp;something&nbsp;variables,&nbsp;this&nbsp;is&nbsp;a&nbsp;sample) <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$sql<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'host'<\/span><span style=\"color: #007700\">]&nbsp;=&nbsp;<\/span><span style=\"color: #DD0000\">\"localhost\"<\/span><span style=\"color: #007700\">; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$sql<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'login'<\/span><span style=\"color: #007700\">]&nbsp;=&nbsp;<\/span><span style=\"color: #DD0000\">\"root\"<\/span><span style=\"color: #007700\">;&nbsp; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$sql<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'pass'<\/span><span style=\"color: #007700\">]&nbsp;=&nbsp;<\/span><span style=\"color: #DD0000\">\"\"<\/span><span style=\"color: #007700\">; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$sql<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'database'<\/span><span style=\"color: #007700\">]&nbsp;=&nbsp;<\/span><span style=\"color: #DD0000\">\"MySiteDatabase\"<\/span><span style=\"color: #007700\">; <\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #FF8000\">\/\/Import&nbsp;a&nbsp;dump&nbsp;from&nbsp;a&nbsp;file <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">function&nbsp;<\/span><span style=\"color: #0000BB\">import_dump&nbsp;<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">string&nbsp;$pathFile<\/span><span style=\"color: #007700\">)&nbsp;{ <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;<\/span><span style=\"color: #0000BB\">$sql<\/span><span style=\"color: #007700\">; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">system<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">\"mysql&nbsp;-h$sql[host]&nbsp;-u$sql[login]&nbsp;-p$sql[pass]&nbsp;$sql[database]&nbsp;&lt;&nbsp;\"&nbsp;<\/span><span style=\"color: #007700\">+&nbsp;<\/span><span style=\"color: #0000BB\">$pathfile<\/span><span style=\"color: #007700\">); <br \/>&nbsp;&nbsp;&nbsp;&nbsp;} <br \/>&nbsp;&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #FF8000\">\/\/Import&nbsp;a&nbsp;dump&nbsp;from&nbsp;a&nbsp;string <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">function&nbsp;<\/span><span style=\"color: #0000BB\">import_dump_string&nbsp;<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">string&nbsp;$dump<\/span><span style=\"color: #007700\">)&nbsp;{ <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;<\/span><span style=\"color: #0000BB\">$sql<\/span><span style=\"color: #007700\">; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$handle&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">popen<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">\"mysql&nbsp;-h$sql[host]&nbsp;-u$sql[login]&nbsp;-p$sql[pass]&nbsp;$sql[database]\"<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #DD0000\">\"w\"<\/span><span style=\"color: #007700\">); <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(<\/span><span style=\"color: #0000BB\">fwrite<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$handle<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$dump<\/span><span style=\"color: #007700\">)&nbsp;===&nbsp;<\/span><span style=\"color: #0000BB\">FALSE<\/span><span style=\"color: #007700\">)&nbsp;{ <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #FF8000\">\/\/We've&nbsp;an&nbsp;error&nbsp;(not&nbsp;a&nbsp;sql&nbsp;error&nbsp;in&nbsp;our&nbsp;dump,&nbsp;but&nbsp;the&nbsp;process&nbsp;mysql&nbsp;isn't&nbsp;correctly&nbsp;opened) <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">} <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">pclose<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$handle<\/span><span style=\"color: #007700\">); <br \/>&nbsp;&nbsp;&nbsp;&nbsp;} <br \/>&nbsp;&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #FF8000\">\/\/Export&nbsp;our&nbsp;database&nbsp;and&nbsp;returns&nbsp;dump&nbsp;filename <br \/>&nbsp;&nbsp;&nbsp;&nbsp;\/\/Optionally,&nbsp;we&nbsp;can&nbsp;specify&nbsp;one&nbsp;or&nbsp;more&nbsp;tables&nbsp;to&nbsp;export&nbsp;(if&nbsp;not&nbsp;specified,&nbsp;all&nbsp;the&nbsp;database&nbsp;will&nbsp;be&nbsp;dumped) <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">function&nbsp;<\/span><span style=\"color: #0000BB\">export_dump&nbsp;<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$tables&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #DD0000\">''<\/span><span style=\"color: #007700\">)&nbsp;{ <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;<\/span><span style=\"color: #0000BB\">$sql<\/span><span style=\"color: #007700\">; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$filename&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$sql<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'database'<\/span><span style=\"color: #007700\">]&nbsp;.&nbsp;<\/span><span style=\"color: #DD0000\">'.'&nbsp;<\/span><span style=\"color: #007700\">.&nbsp;<\/span><span style=\"color: #0000BB\">time<\/span><span style=\"color: #007700\">()&nbsp;.&nbsp;<\/span><span style=\"color: #DD0000\">'.sql'<\/span><span style=\"color: #007700\">; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">system<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">\"mysqldump&nbsp;-h$sql[host]&nbsp;-u$sql[login]&nbsp;-p$sql[pass]&nbsp;$sql[database]&nbsp;$tables&nbsp;&gt;&nbsp;$filename\"<\/span><span style=\"color: #007700\">); <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;<\/span><span style=\"color: #0000BB\">$filename<\/span><span style=\"color: #007700\">; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;} <br \/>&nbsp;&nbsp;&nbsp;&nbsp; <br \/><\/span><span style=\"color: #0000BB\">?&gt; <br \/><\/span> <br \/>Dump&nbsp;the&nbsp;database&nbsp;and&nbsp;provide&nbsp;download&nbsp;link&nbsp;: <\/p>\n<p><span style=\"color: #0000BB\">&lt;?php <br \/>&nbsp;&nbsp;<\/span><span style=\"color: #FF8000\">\/\/Dump&nbsp;our&nbsp;database&nbsp;in&nbsp;whole&nbsp;in&nbsp;a&nbsp;file&nbsp;: <br \/>&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$dumpFile&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">export_dump<\/span><span style=\"color: #007700\">(); <br \/>&nbsp;&nbsp;<\/span><span style=\"color: #FF8000\">\/\/Link <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">echo&nbsp;<\/span><span style=\"color: #DD0000\">\"&lt;a&nbsp;href='$dumpFile'&gt;Download&nbsp;the&nbsp;backup&nbsp;of&nbsp;the&nbsp;$sql[database]&nbsp;database&lt;\/a&gt;\"<\/span><span style=\"color: #007700\">; <br \/><\/span><span style=\"color: #0000BB\">?&gt; <br \/><\/span> <br \/>Execute&nbsp;posted&nbsp;dump&nbsp;: <\/p>\n<p><span style=\"color: #0000BB\">&lt;?php <br \/>&nbsp;&nbsp;<\/span><span style=\"color: #FF8000\">\/\/Dump&nbsp;our&nbsp;database&nbsp;in&nbsp;whole&nbsp;in&nbsp;a&nbsp;file&nbsp;: <br \/>&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">import_dump_string<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$_POST<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #0000BB\">sqldump<\/span><span style=\"color: #007700\">]); <br \/><\/span><span style=\"color: #0000BB\">?&gt;<\/span> <\/span> <\/code> <\/p>\n<p>Of course, on Windows, you&#8217;ve to add your MySQL server bin directory in the path or replace system(&#8220;mysql &#8230;&#8221;) by system(&#8220;d:WebServerMySQLbinmysql.exe &#8230;&#8221;);<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To import or export MySQL dumps, we can use mysql and mysqldump commands. Let&#8217;s call them from PHP.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[17],"class_list":["post-46","post","type-post","status-publish","format-standard","hentry","tag-php"],"_links":{"self":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts\/46","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/comments?post=46"}],"version-history":[{"count":0,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}