php怎么用命令导入数据库?

 更新时间:2017年7月6日 23:33  点击:1462
php怎么用命令导入数据库?本文介绍了php语句把数据库*.sql文件导入数据库的实例代码,非常简单,有需要的同学快看看吧!

最简单的php语句把数据库*.sql文件导入数据库

 代码如下复制代码
$sql=file_get_contents("text.sql"); //把SQL语句以字符串读入$sql 
$a=explode(";",$sql); //用explode()函数把‍$sql字符串以“;”分割为数组
foreach($a as $b){ //遍历数组 
$c=$b.";"; //分割后是没有“;”的,因为SQL语句以“;”结束,所以在执行SQL前把它加上 
mysql_query($c); //执行SQL语句 

在很多安装程序中大家都会看到数据库的安装,其它神秘的背后就是这么简单的几句代码。首先安装中会有一个Sql文件,然后再按照上面的代码在PHP中执行。

用php ,curl主要是抓取数据,当然我们可以用其他的方法来抓取,比如fsockopen,file_get_contents等。但是只能抓那些能直接访问的页面,如果要抓取有页面访问控制的页面,或者是登录以后的页面就比较困难了。这里介绍了php curl常用的5个经典例子,大家可以参考一下。

我用php ,curl主要是抓取数据,当然我们可以用其他的方法来抓取,比如fsockopen,file_get_contents等。但是只能抓那些能直接访问的页面,如果要抓取有页面访问控制的页面,或者是登录以后的页面就比较困难了。

1,抓取无访问控制文件

 

 代码如下 复制代码

<?php

 $ch= curl_init();

 curl_setopt($ch, CURLOPT_URL,"http://localhost/mytest/phpinfo.php");

 curl_setopt($ch, CURLOPT_HEADER, false);

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//如果把这行注释掉的话,就会直接输出

 $result=curl_exec($ch);

 curl_close($ch);

 ?>

 

2,使用代理进行抓取

为什么要使用代理进行抓取呢?以google为例吧,如果去抓google的数据,短时间内抓的很频繁的话,你就抓取不到了。google对你的ip地址做限制这个时候,你可以换代理重新抓。

 

 代码如下 复制代码

<pre name="code"class="php"><?php

 $ch= curl_init();

 curl_setopt($ch, CURLOPT_URL,"http://blog.51yip.com");

 curl_setopt($ch, CURLOPT_HEADER, false);

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

 curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);

 curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080);

 //url_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');如果要密码的话,加上这个

 $result=curl_exec($ch);

 curl_close($ch);

 ?>

 

3,post数据后,抓取数据

单独说一下数据提交数据,因为用 curl的时候,很多时候会有数据交互的,所以比较重要的。

 

 代码如下 复制代码

<?php

 $ch= curl_init();

 /*在这里需要注意的是,要提交的数据不能是二维数组或者更高

 *例如array('name'=>serialize(array('tank','zhang')),'sex'=>1,'birth'=>'20101010')

 *例如array('name'=>array('tank','zhang'),'sex'=>1,'birth'=>'20101010')这样会报错的*/

 $data=array('name'=>'test','sex'=>1,'birth'=>'20101010');

 curl_setopt($ch, CURLOPT_URL,'http://localhost/mytest/curl/upload.php');

 curl_setopt($ch, CURLOPT_POST, 1);

 curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

 curl_exec($ch);

 ?>

 

在 upload.php文件中,print_r($_POST);利用curl就能抓取出upload.php输出的内容Array ( [name] => test [sex] => 1 [birth] => 20101010 )

4,抓取一些有页面访问控制的页面

以前写过一篇,页面访问控制的3种方法有兴趣的可以看一下。

如果用上面提到的方法抓的话,会报以下错误

You are not authorized to view this page
You do not have permission to view this directory or page using the  credentials that you supplied because your Web browser is sending a  WWW-Authenticate header field that the Web server is not configured to  accept.

这个时候,我们就要用CURLOPT_USERPWD来进行验证了

 

 代码如下 复制代码

<?php

 $ch= curl_init();

 curl_setopt($ch, CURLOPT_URL,"http://club-china");

 /*CURLOPT_USERPWD主要用来破解页面访问控制的

 *例如平时我们所以htpasswd产生页面控制等。*/

 //curl_setopt($ch, CURLOPT_USERPWD, 'user:password');

 curl_setopt($ch, CURLOPT_HTTPGET, 1);

 curl_setopt($ch, CURLOPT_REFERER,"http://club-china");

 curl_setopt($ch, CURLOPT_HEADER, 0);

 $result=curl_exec($ch);

 curl_close($ch);

 ?>

 

这篇文章介绍了php访问oracle存储过程实例的详解,有兴趣的同学可以参考一下哦

php 访问oracle 存储过程实例详解

比如我的本地Oracle数据库有一个package,里面有一个存储过程:

createorreplacepackage PKG_TRANS_RELis
 
 -- Author : test
 -- Created :
 -- Purpose : test
 
 -- Public type declarations
 PKG_NAME varchar2(20) :='PKG_TRANS_REL';
 --存储过程,测试用
 procedurepro_GC_withdraw(in_merch_no  invarchar2,
              in_withdraw_amtinnumber,
              out_result  outnumber,
              out_errmsg  outvarchar2);
endPKG_TRANS_REL;

包名是PKG_TRANS_REL,存储过程是pro_GC_withdraw,这个存储过程有四个参数,两个入参,两个出参。

在PHP中通过pdo调用示例:

$this->_pdo =newPDO(PDO_DB_DNS, PDO_DB_USER, PDO_DB_PASSWORD);
$call="CALL PKG_TRANS_REL.pro_GC_withdraw(?,?,?,?)";
 
try{
    $stmt=$this->_pdo->prepare($call);
 
    $stmt->bindParam(1,$merch_no);
    $stmt->bindParam(2,$amount, PDO::PARAM_INT);
 
    $stmt->bindParam(3,$result, PDO::PARAM_INT, 4);
    $stmt->bindParam(4,$error_msg, PDO::PARAM_STR, 64);
 
    $stmt->execute();
 
  }catch(PDOException$e)
  {
    $msg='SQL:'.$e->getMessage();
    $msg= iconv('GBK','UTF-8',$msg);
    user_dump('SQL:'.$msg);
    returnfalse;
  }
 
  ...

bindParam第三个参数默认是PDO::PARAM_STR,如果是其它类型就要指明

入参传值比较简单,出参稍微复杂些,要指明长度。

[!--infotagslink--]

相关文章

  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • Linux中grep命令详解

    grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下...2023-02-15
  • C#隐式运行CMD命令(隐藏命令窗口)

    这篇文章主要介绍了C#隐式运行CMD命令(隐藏命令窗口),本文实现在winform窗口中运行CMD命令,需要的朋友可以参考下...2020-06-25
  • PHP实现连接设备、通讯和发送命令的方法

    本文实例讲述了PHP实现连接设备、通讯和发送命令的方法。分享给大家供大家参考。具体如下:开发的BS架构的软件(PHP),需要跟设备进行通讯,在此记录一下,欢迎各位指正:1. 采用php socket技术使用TCP/IP连接设备参数$service_po...2015-10-21
  • c#异步读取数据库与异步更新ui的代码实现

    这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • springBoot 项目排除数据库启动方式

    这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
  • 详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)

    这篇文章主要介绍了在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • 对MySQL日志操作的一些基本命令总结

    MySQL日志主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句...2015-11-24