【美高梅开户网址】插入粤语及普通话查询,php完毕mysql同步的完结方式

得到要求之后,发现那四个网址的MYSQL数据库都无法中距离访谈(安全第一吧)。于是想起了
平日选用的CSV文件批量录入数据。于是
品尝采取CSV导入导出。
导入随地框架如下:
1第一将数据导出成CSV的格式。
建构一文本,放置在神州服务器上:csv.php.其实便是八个导出函数,通过数据库,表名和SQL语句来博取多少。
csv.php

<?php
/**
* 输出三个数据库中的表到贰个CSV文件中
*
* @param string Mysql数据库的主机
* @param string 数据库名称
* @param string 数据库中的表名
* @param string 数据库的连天客商名
* @param string 数据库的连接密码
* @param string 数据库的表名
* @param string 数据库的
* @param string 错误页面
* @param string SQL语句
*
* @return text 重返CSV格式的原委
*
* @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(“无法三番五次数据库,错误代码如下:”
. mysql_error());
mysql_select_db(db);
result = mysql_query(sql_query);
fields_cnt = mysql_num_fields(result);
cc=””;
//fp = fopen(filename, ‘w’);
// 格式化数据
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”; //用什么来替换空值
} elseif (row[j] == ‘0’ || row[j] != ”) {
// loic1 :用引号富含字段值
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;
}
?>

//笔者修改之,能健康运作,测验意况为mysql5.0,xp
//关键是设置对字符集,设置gbk,gb2312测量试验通过,utf8测量检验未经过
//在运营程序前先创造数据库jj,注意下边几个参数(修改为你和睦的)

本小说提供了二款数据库教程连年实例,主即便讲php教程
mysql教程数量相关操作,有亟待的相恋的人能够利用看看。

复制代码 代码如下:

<?php
/**
* 从二个上传的文本元帅数据导入到七个表中
*
* @param string Mysql数据库的主机
* @param string 数据库名称
* @param string 数据库中的表名
* @param string 数据库的连天客户名
* @param string 数据库的总是密码
* @param string 数据库的表名
*
* @return bool 是或不是实行成功
*
* @access public
*/
function uploadFileOfCsv(host,db,user,pass,table,content){
mysql_connect(host, user,pass) or die(“不可能三番两次数据库,错误代码如下:”
. mysql_error());
mysql_select_db(db);
result = mysql_query(“select * from table”);
fields_cnt = mysql_num_fields(result);
test2=array(array());
rownum=0;
log(“提取的数码如下:<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(‘第”.i.”行的ID空,请检查!’);”;
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);
}
}
?>

复制代码 代码如下:

<?php
class mysql {
private $db_host; //主机地址
private $db_user; //用户名
private $db_pass; //连接密码
private $db_name; //名称
private $db_【美高梅开户网址】插入粤语及普通话查询,php完毕mysql同步的完结方式。charset; //编码
private $conn;
public $debug=false;//调节和测量检验开关,暗中认可关闭
private $query_id; //用于判定sql语句是还是不是实施成功
private $result; //结果集
private $num_rows; //结果聚集央银行的数码,仅对select有效
private $insert_id; //上一步 insert 操作爆发的 id
// 构造/析构函数
function __construct
($db_host,$db_user,$db_pass,$db_name,$db_charset,$conn) {
$this->db_host = $db_host ;
$this->db_user = $db_user ;
$this->db_pass = $db_pass ;
$this->db_name = $db_name ;
$this->db_charset = $db_charset ;
$this->conn = $conn ;
$this->connect();
}
function __destruct () {
@mysql_close($this->conn);
}
// 连接/选拔数据库
public function connect () {
if ($this->conn == ‘pconn’) {
@$this->conn =
mysql_pconnect($this->db_host,$this->db_user,$this->db_pass);
} else {
@$this->conn =
mysql_connect($this->db_host,$this->db_user,$this->db_pass);
}
if (!$this->conn) {
$this->show_error(‘数据库-连接失败:客商名或密码错误!’);
}
if (!@mysql_select_db($this->db_name,$this->conn)) {
$this->show_error(“数据库-选择战败:数据库 $this->db_name
不可用”);
}
mysql_query(“set names $this->db_charset”);
return $this->conn;
}
// query方法
public function query ($sql) {
if ($this->query_id) $this->free_result();
$this->query_id = @mysql_query($sql,$this->conn);
if (!$this->query_id) $this->show_error(“sql语句
<b>”$sql”</b> 施行时遇见错误”);
return $this->query_id;
}
// 展现详细错误音信
public function show_error ($msg) {
if($this->debug){
$errinfo = mysql_error();
echo “错误:$msg <br/> 返回:$errinfo<p>”;
}else{
echo ‘<p>出现谬误!<p>’;
}
}
// 获得query推行成功与否的音信
public function get_query_info($info){
if ($this->query_id) {
echo $info;
}
}
// 查询全体
public function findall ($table_name) {
$this->query(“select * from $table_name”);
}
// mysql_fetch_array
public function fetch_array () {
if ($this->query_id) {
$this->result = mysql_fetch_array($this->query_id);
return $this->result;
}
}
// ……
public function fetch_assoc () {
if ($this->query_id) {
$this->result = mysql_fetch_assoc($this->query_id);
return $this->result;
}
}
public function fetch_row () {
if ($this->query_id) {
$this->result = mysql_fetch_row($this->query_id);
return $this->result;
}
}
public function fetch_object () {
if ($this->query_id) {
$this->result = mysql_fetch_object($this->query_id);
return $this->result;
}
}
// 获取 num_rows
public function num_rows () {
if ($this->query_id) {
$this->num_rows = mysql_num_rows($this->query_id);
return $this->num_rows;
}
}
// 获取 insert_id
public function insert_id () {
return $this->insert_id = mysql_insert_id();
}
// 突显共有多少张表
public function show_tables () {
$this->query(“show tables”);
if ($this->query_id) {
echo “数据库 $this->db_name 共有
“.$this->num_rows($this->query_id).” 张表<br/>”;
$i = 1;
while ($row = $this->fetch_array($this->query_id)){
echo “$i — $row[0]<br/>”;
$i ++;
}
}
}
// 展现共有多少个数据库
public function show_dbs(){
$this->query(“show databases”);
if ($this->query_id) {
echo “共有数据库 “.$this->num_rows($this->query_id).”
个<br/>”;
$i = 1;
while ($this->row = $this->fetch_array($this->query_id)){
echo “$i — “.$this->row[database].”<br />”;
$i ++;
}
}
}
// 删除数据库:重回删除结果
public function drop_db ($db_name=”) {
if ($db_name == ”) {
$db_name = $this->db_name;//私下认可删除当前数据库
$this->query(“drop database $db_name”);
}else {
$this->query(“drop database $db_name”);
}
if ($this->query_id) {
return “数据库 $db_name 删除成功”;
}else {
$this->show_error(“数据库 $db_name 删除失败”);
}
}
// 删除数据表:重临删除结果
public function drop_table ($table_name) {
$this->query(“drop table $table_name”);
if ($this->query_id) {
return “数据表 $table_name 删除成功”;
}else {
$this->show_error(“数据表 $table_name 删除退步”);
}
}
// 创制数据库
public function create_db ($db_name) {
$this->query(“create database $db_name”);
if($this->query_id){
return “数据库 $db_name 创制作而成功”;
}else {
$this->show_error(“数据库 $db_name 创制失利”);
}
}
// 获取数据库版本
public function get_info(){
echo mysql_get_server_info();
}
// 释放内存
public function free_result () {
if ( @mysql_free_result($this->query_id) )
unset ($this->result);
$this->query_id = 0;
}
} // end class
?>

<?php
/**
* 输出三个数据库中的表到四个CSV文件中
*
* @param string Mysql数据库的主机
* @param string 数据库名称
* @param string 数据库中的表名
* @param string 数据库的连天客户名
* @param string 数据库的连日密码
* @param string 数据库的表名
* @param string 数据库的
* @param string 错误页面
* @param string SQL语句
*
* @return text 重返CSV格式的剧情
*
* @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(“无法三番四遍数据库,错误代码如下:”
. mysql_error());
mysql_select_db(db);
result = mysql_query(sql_query);
fields_cnt = mysql_num_fields(result);
cc=””;
//fp = fopen(filename, ‘w’);
// 格式化数据
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”; //用什么来替换空值
} elseif (row[j] == ‘0’ || row[j] != ”) {
// loic1 :用引号满含字段值
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;
}
?>

<?php
require_once(“csv.php”);
host=”localhost”;
db=”project”;
user=”root”;
pass=””;
//导出tb_contact表的数码为csv文件
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=”;
<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=”提交”>
</p>
</form>

// char *host = “localhost”;
// char *user = “root”;
// char *pass = “674800”;
// char *db = “jj”;
#include <windows.h>
#include <iostream>
#include <mysql.h>
#include <stdio.h>
#include <string.h>
using namespace std;
#pragma comment(lib,”libmysql.lib”)
int connDB();
int create_table();
int insert_table();
int select_table();
int disconnDB();
MYSQL *mysql;
MYSQL_RES *res;
MYSQL_FIELD * fd;
MYSQL_ROW row;
char szSqlText[500]=””;
int i;
int main()
{
connDB();
// create_table();
insert_table();
select_table();
disconnDB();
return 0;
}
///////////////子函数
int connDB()//连接数据库
{
char *host = “localhost”;
char *user = “root”;
char *pass = “674800”;
char *db = “jj”;
mysql = mysql_init((MYSQL*) 0);
mysql_real_connect( mysql, host, user, pass, db,3306, NULL, 0 ) ;
//链接到服务器
mysql_set_character_set(mysql,”gb2312″); //设置字符集
cout<<“conn OK!”<<endl;
return 0;
}
美高梅开户网址 ,//关闭数据库
int disconnDB()
{
mysql_close( mysql ) ;
cout<<“disconn OK!”<<endl;
return 0 ;
}
//创建表
int create_table()
{
mysql_set_character_set(mysql,”gb2312″);
sprintf(szSqlText, \
“create table mytable \
(s0 varchar(100), \
s1 char(6),\
s2 varchar(4),\
s3 varchar(3),s4 int)\
ENGINE=InnoDB \
DEFAULT CHARSET=gb2312″);
if(mysql_query( mysql, szSqlText))
cout<<“occurred an
error:”<<mysql_error(mysql)<<endl;
return 0;
}
int insert_table()
{
mysql_set_character_set(mysql,”gb2312″);
sprintf(szSqlText,
“insert into mytable\
values(‘2000-3-10 21:01:30’,\
‘Test’,\
‘清风寒剑’,\
‘岁月情’,\
2500)”);
if( mysql_query( mysql, szSqlText) )
cout<<“occurred an
error:”<<mysql_error(mysql)<<endl;
return 0;
}
int select_table()
{
mysql_set_character_set(mysql,”gb2312″);
sprintf(szSqlText, “select * from mytable “);
if (mysql_query( mysql, szSqlText))
{
cout<<“occurred an
error:”<<mysql_error(mysql)<<endl;
mysql_close( mysql ) ;
return FALSE ;
}
res = mysql_store_result( mysql) ;
i = (int) mysql_num_rows( res ) ;
cout<<“Query: “<<szSqlText<<“\n”<<i<<”
records found:”<<endl;
for ( i = 0 ; fd = mysql_fetch_field( res ) ; i++ )
cout<<fd->name<<“\t”;
cout<<endl;
while(row = mysql_fetch_row( res ))
cout<<row[0]<<“\t”<<row[1]<<“\t”<<row[2]<<“\t”<<row[3]<<“\t”<<row[4]<<endl;
mysql_free_result( res ) ;
cout<<“select OK!”<<endl;
return 0;
}

下边提供一款自动采用数据库远程或本地连接代码

2.将CSV格式的内容导入到表中
在U.S.A.服务器上创设个导入的文本,放置:import.php ,代码如下:

 

本身机器上的周转结果:
美高梅开户网址 1
美高梅开户网址 2

 

复制代码 代码如下:

/** * 输出三个数据库中的表到七个CSV文件中
* * @param string Mysql数据库的主机 * @param string 数据库名称 *
@param string 数据库中的表名 * @pa…

//关键是设置对字符集,设置gbk,gb2312测量试验通过,utf8测量试验未通过
//在运转程序前先制造数量库…

<?php
// 包含mysql操作类
include_once ‘mysql.class.php’;
// 本地mysql数据
$mysql_local_data = array(‘db_host’=>’localhost’,
‘db_user’=>’root’,
‘db_pass’=>’root’,
‘db_name’=>’test’);
// 远程mysql数据
$mysql_remote_data = array(‘db_host’=>’61.183.41.178’,
‘db_user’=>’xxx’,
‘db_pass’=>’xxx’,
‘db_name’=>’xxx’);
// 公用数据
$tb_prefix = ‘php95_’;
$db_charset = ‘utf-8’;
//本地连接成功则实例化本地mysql类,不然连接远程数据库并实例化mysql类
if (@mysql_connect($mysql_local_data[db_host],
$mysql_local_data[db_user], $mysql_local_data[db_pass]))
$db = new mysql($db_host, $mysql_local_data[db_user],
$mysql_local_data[db_pass], $mysql_local_data[db_name],
$db_charset, $conn);
else
$db = new mysql($mysql_remote_data[db_host],
$mysql_remote_data[db_user], $mysql_remote_data[db_pass],
$mysql_remote_data[db_name], $db_charset, $conn);
$db->show_tables(); //测量检验:突显当前数据库下的装有表名
?>

<?php
/**
* 从叁个上传的文本旅长数据导入到贰个表中
*
* @param string Mysql数据库的主机
* @param string 数据库名称
* @param string 数据库中的表名
* @param string 数据库的接连客商名
* @param string 数据库的连天密码
* @param string 数据库的表名
*
* @return bool 是或不是实践成功
*
* @access public
*/
function uploadFileOfCsv(host,db,user,pass,table,content){
mysql_connect(host, user,pass) or die(“不可能再而三数据库,错误代码如下:”
. mysql_error());
mysql_select_db(db);
result = mysql_query(“select * from table”);
fields_cnt = mysql_num_fields(result);
test2=array(array());
rownum=0;
log(“提取的数据如下:<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(‘第”.i.”行的ID空,请检查!’);”;
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);
}
}
?>

一旦我们要在test.php文件中操作虚构主机的数据库,则率先要在本地调节和测量检验,那么必须要连接本地、远程多少个例外的数据库,难点:怎么让test.php自动识别当下该连接本地照旧长途数据库呢?

3调用函数试行导出
在中原服务器上再建设构造一个文件:test_export.php,调用后边的csv.php的函数,然后将数据转成CSV,然后有时存到贰个表单的
textera中,注意表单提交的任务:

复制代码 代码如下:

<?php
require_once(“csv.php”);
host=”localhost”;
db=”project”;
user=”root”;
pass=””;
//导出tb_contact表的数码为csv文件
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=”;
<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=”提交”>
</p>
</form>

再在美利坚同车笠之盟服务器上防置如下文件用于接受上传上来的数目,文件名叫test_import.php:

复制代码 代码如下:

<?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);
}
?>

最终 利用Windows-xp/nt/03 调整面版中自带
职责布署,调治执行中华夏族民共和国服务器test_export.php文件就可以

你可能感兴趣的稿子:

  • 用PHP完毕多服务器分享SESSION数据的章程
  • php完成从ftp服务器上下载文件树到地头计算机的顺序
  • PHP 实现多服务器分享 SESSION
    数据
  • PHPwind整合最土系统客商同步登入完毕方式
  • PHP中贯彻调换静态文件的法子解决服务器压力
  • PHP多少个文本上传来服务器实例
  • php在linux下检查评定mysql同步状态的艺术
  • PHP进程同步代码实例
  • PHP怎样将log新闻写入服务器中的log文件
  • PHP编写文件多服务器同步程序

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图