Home Backend Development PHP Tutorial How to implement mysql synchronization in php_PHP tutorial

How to implement mysql synchronization in php_PHP tutorial

Jul 21, 2016 pm 03:43 PM
mysql php Discover Synchronize accomplish database method of net Remotely need

After getting the requirements, I found that the MYSQL databases of these two websites cannot be accessed remotely (security first). Then I remembered the CSV file I usually use to enter data in batches. So
try to use CSV import and export.
The import framework is as follows:
1 First export the data into CSV format.
Create a file and place it on the Chinese server: csv.php. It is actually an export function that obtains data through the database, table name and SQL statement.
csv.php

Copy code The code is as follows:

<?php
/**
* Output a table in the database to a CSV file
*
* @param string Mysql database host
* @param string Database name
* @param string Table in the database Name
* @param string database connection username
* @param string database connection password
* @param string database table name
* @param string database
* @param string error page
* @param string SQL statement
*
* @return text Return content in CSV format
*
* @access public
*/
function PMA_exportData(host,db,user,pass,filename,table, crlf, error_url, sql_query) {
what="csv";
csv_terminated=" ";
csv_separator= ",";
csv_enclosed=" ";
csv_escaped=" ";
mysql_connect(host, user,pass) or die("Unable to connect to the database, the error code is as follows: " . mysql_error());
mysql_select_db(db);
result = mysql_query(sql_query);
fields_cnt = mysql_num_fields(result);
cc="";
//fp = fopen(filename, 'w' );
//Format data
while (row = mysql_fetch_row(result)) {
schema_insert = '';
for (j = 0; j < fields_cnt; j++) {
if (!isset(row[j]) || is_null(row[j])) {
schema_insert .="NULL"; //What to use to replace the null value
} elseif (row[j] == '0' || row[j] != '') {
// loic1 : Enclose field value in quotes
if (csv_enclosed == '') {
schema_insert .= row[j ];
} else {
schema_insert .= csv_enclosed
. str_replace(csv_enclosed, csv_escaped . csv_enclosed, row[j])
. csv_enclosed;
}
} else {
schema_insert .= '';
}
if (j < fields_cnt-1) {
schema_insert .= csv_separator;
}
} // end for
// fwrite (fp,schema_insert . csv_terminated);
cc.=schema_insert . csv_terminated;
} // end while
mysql_free_result(result);
// fclose(fp);
return cc;
}
?>

2. Import the content in CSV format into the table
Create an imported file on the US server and place: import.php, code As follows:
Copy code The code is as follows:

<?php
/**
* Import data from an uploaded file into a table
*
* @param string Mysql database host
* @param string database name
* @param string database Table name
* @param string Database connection username
* @param string Database connection password
* @param string Database table name
*
* @return bool Whether to execute Success
*
* @access public
*/
function uploadFileOfCsv(host,db,user,pass,table,content){
mysql_connect(host, user,pass) or die("Unable to connect to the database, the error code is as follows: " . mysql_error());
mysql_select_db(db);
result = mysql_query("select * from table");
fields_cnt = mysql_num_fields(result);
test2=array(array());
rownum=0;
log("The extracted data is as follows: <br>".content);
fd1 = fopen ("C:test.csv",'a');
fwrite(fd1,content);
fclose(fd1);
fp = fopen("C:test.csv", "r");
while (buffer = fgets(fp,4096))
{
i++ ;
tmp_arr = explode(",",buffer);
if(trim(tmp_arr[0]) == ""){
echo "<script language='javascript'>";
echo "alert('The ID of line ".i." is empty, please check! ');";
echo "location.href=document.referrer;";
echo "</script>";
exit;
}
query = "INSERT INTO db .table";
query .=" values ​​( ";
for(q=0;q<fields_cnt;q++){
if(q==fields_cnt-1){
tmp=tmp_arr [q];
query.="'tmp');";
}else{
tmp=tmp_arr[q];
query.="'tmp',";
}
}//end for(q=0;
log2(query);
mysql_query(query);
}
fclose(fp);
return "OK";
unlink("C:test.csv");
}
function log2(event = null){
//global db;
// global login;
if( LOG_ENABLED){
now = date("Y-M-d H:i:s");
fd = fopen ("C:log.html",'a');
log = now." ". _SERVER["REMOTE_ADDR"] ." - event <br>";
fwrite(fd,log);
fclose(fd);
}
}
?>

3 Call the function to perform the export
Create another file on the Chinese server: test_export.php, call the function of the previous csv.php, then convert the data into CSV, and then temporarily save it to a form
In textera, pay attention to the location of form submission:
Copy code The code is as follows:

<?php
require_once( "csv.php");
host="localhost";
db="project";
user="root";
pass="";
//Export the tb_contact table The data is a csv file
filename = 'file4.csv';
cc=PMA_exportData( host,db,user,pass, filename,"tb_project_dvp", "", "test.php", "select * from tb_project_dvp");
handle = fopen(filename, "rb");
contents = fread(handle, filesize (filename));
fclose(handle);
?>
<form id="form1" name="form1" method="post" action="http://US website address/test2.php">
<p>
<textarea name ="textarea" cols="180" rows="30"><?php echo cc?></textarea>
<input type="hidden" name="action" value="1 "/>
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>

Then set up the following file on the US server to accept the uploaded data, the file name is test_import.php:
Copy code The code is as follows:

<?php
require_once("csv.php");
require_once("import.php") ;
host="localhost";
db="wintopweb";
user="root";
pass="";
if(_POST['action']==" 1"){
content=_POST['textarea'];
echo uploadFileOfCsv(host,db,user,pass,"tb_project_dvp",content);
}
?>

Finally, use the built-in task plan in the Windows-xp/nt/03 control panel to schedule and execute the Chinese server test_export.php file.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/320777.htmlTechArticleAfter receiving the requirements, we found that the MYSQL databases of these two websites cannot be accessed remotely (security first). Then I remembered the CSV file I usually use to enter data in batches. So try to use C...
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 Article Tags

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)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

CakePHP Date and Time

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

CakePHP Project Configuration

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

CakePHP File upload

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

CakePHP Routing

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

Discuss CakePHP

How to fix mysql_native_password not loaded errors on MySQL 8.4 How to fix mysql_native_password not loaded errors on MySQL 8.4 Dec 09, 2024 am 11:42 AM

How to fix mysql_native_password not loaded errors on MySQL 8.4

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP Quick Guide

See all articles