大家好!今天应粉丝留言出一期关于php和mysql的内容,如果想把数据库的出现在web页面中,必须知道如何在PHP脚本中建立mysql的连接,今天给大家说的内容是“如何用php连接mysql数据库”。
php通过什么程序连接到数据库?
我们使用的是phpmyadmin的phpweb应用程序连接数据库。相对于其他的第三方数据管理软件,phpmyadmin是常用的,它能够直接连接到运行中的MYSQL数据库服务器,在php中是由php的数据对象(php Date Objects,PDO)扩展来实现MYSQL数据库的连接。
PDO连接数据库的语法:
new PDO(‘mysql:host=myhostname;dbname=mydatebase’,‘username’,‘password’)
1、将newpdo看成一个内建的函数,需要注意的是函数名中不能出现空格。
2、字符串说明了mysql数据库的类型、服务器主机名host=myhostname、数据库名称dbname=mydatebase’。
3、输入你想让php使用的数据库mysql的用户名。
4、该用户的MYSQL的密码。
使用new PDO连接数据库需要注意什么?
mysql和是和服务器相分离的一个软件,如果出现密码错误、网络中断等情况,会导致数据库不可用或者无法访问,在这种情况下new pdo不会允许会抛出一个异常。
php异常是上述情况下发生的,作为开发者我们必须考虑到在连接数据中的这种情况,当php无法执行该任务时,php试图做你让它做的事,但是会失败,php为了告诉你不能执行的消息,会抛出一个异常。
php pdo连接mysql完整实例:
try{ $dbh =new PDO(‘mysql:host=myhostname;dbname=mydatebase’,‘username’,‘password’); echo "连接成功<br/>"; }}catch(PDOException $e){die("Error!: ". $e->getMessage()."<br/>");exit();}关于“PHP如何连接mysql”先聊到这。每天学习一个知识点,每日寄语”你若盛开,蝴蝶自来;你若精彩,天自安排。”如转载请标注出处,近期发现有个人未经允许擅自转载,本人声明请尽快删除。
解析结果集
PDO(PHP Data Object)
PDO是PHP数据对象的英文缩写,英文全称为PHP Data Object,是又MySQL官方封装的、基于面向对象编程思想的、使用C语言开发的数据库抽象层。
配置PDO
Windows下启动PDO需要在“php.ini”文件中进行配置,添加扩展:
extension=php_pdo.dll
在最新版PHP中,PDO已经默认开启,只需要启动其他数据库扩展即可。配置好这些后重启Apache服务。执行phpinfo()函数,看到PDO配置项,说明开启成功。
MySQL访问数据库
与mysqli扩展类似,PDO扩展也是实例一个PDO对象,然后可以调用相关方法和属性来执行数据库的操作。
连接服务器
使用PDO与服务器建立连接,需要先使用构造方法来创建PDO实例,PDO的构造方法如下:
_construct(stringdata_source_name [,string user[,string pwd[,array driver_options]]])
datasourcename : 数据源,该参数包括了数据库名,主机名。MySQL数据库的DSN为:“mysql:host=localhost;dbname=account_db; port=3306”
user:数据库服务器用户名
pwd:为数据库服务器密码
数据库连接成功后,将返回一个PDO的实例,连接失败将会抛出一个PDOException异常,通常会使用try/catch语句进行处理。
关闭数据库
要想关闭连接,需要销毁对象以确保所有到它的引用都被删除,可以给变量赋一个NULL。
执行SQL语句
PDO提供了三种执行SQL语句的方法,分别是exec(),query(),预处理语句。
exec()
exec()方法可以执行一条语句,并返回受影响的行数,它的语法格式如下:
int PDO::exec(String sql)
exec()方法通常用于insert into,delete,update等语句。
<?phpecho "<pre>"; $dbms = "mysql"; $server = "localhost"; $username = "root"; $password = "123456"; $dsn = "$dbms:host=$server"; try { $pdo = new PDO ( $dsn, $username, $password ); echo "PDO连接MySQL数据库服务器成功"; print ($pdo->exec ( "create database account_pdo_db" )) ; print ($pdo->exec ( "use account_pdo_db" )) ; print ($pdo->exec ( "set names utf8" )) ; print ($pdo->exec ( "create table account(id int auto_increment primary key, username varchar(50) not null, password varchar(50) not null, email varchar(50) not null)" )) ; print ($pdo->exec ( "insert into account(username, password, email) values ('Jack', '123456', 'jack@example.com')" )) ; print ($pdo->exec ( "insert into account(username, password, email) values ('Lucy', '123456', 'lucy@example.com')" )) ; $pdo = null; } catch ( PDOException $e ) { echo "PDO连接MySQL数据库服务器失败"; die (); }?>
query()
query()方法不同于exec(),通常用于select语句中,它的返回值是PDOStatement的实例,是POD里的结果集。它的语法如下:
PDOStatement PDO::query(String sql)
<?phpecho "<pre>";$dbms = "mysql";$server = "localhost";$username = "root";$password = "123456";$dbname = "account_pdo_db";$dsn = "$dbms:host=$server;dbname=$dbname";try {$pdo = new PDO ( $dsn, $username, $password ); echo "<p>PDO连接MySQL数据库服务器成功</p>"; $result = $pdo->query ( "select * from account" ); foreach ( $result as $row ) { var_dump ( $row ); } $pdo = null;} catch ( PDOException $e ) { echo "PDO连接MySQL数据库服务器失败"; die ();}?>
数据库是编程的核心内容,在使用php做网站的过程中,固然要与数据库打交道,那么在php中,怎样来创建一个数据库呢?下面我们就一起来了解一下吧。
1、创建一个函数
我在这里是作为演示实例,所以没有用框架,用的是原生的,打开编辑器,新建一个文件,然后再文件里面,先新建一个函数,这里命名是create_data,接下来我们将在这个函数里面来写php怎样创建一个数据库?
2、登陆信息
要想创建数据库或者是对数据库的其他操作,都必须先连接数据库,先设置好用户名,主机名,密码这三个变量:
$Username="root";
$Password="";
$servernmae="localhost";
3、连接数据库
登陆信息创建好之后,我们就来连接数据库了,我这里使用的是mysqli的连接方式:
$connect=new mysqli($servernmae,$Username,$Password);
4、创建数据库
如果数据库连接成功的话,我们就开始创建数据库,创建数据库的sql语句格式是“create database +要创建的数据库名”,例子如下:
$sql="create database ceshi";
然后是执行这个sql语句:
if($connect->query($sql)){
echo "successful!";
}
else{
echo $connect->error;
}
5、访问测试。
开启本地的服务器和mysql服务器,然后在浏览器中输入刚才那个文件的地址进行访问,结果如下:
完整代码如下:
function create_data(){
$Username="root";
$Password="";
$servernmae="localhost";
$connect=new mysqli($servernmae,$Username,$Password);
if($connect){
$sql="create database ceshi";
if($connect->query($sql)){
echo "successful!";
}
else{
echo $connect->error;
}
}
}
create_data();
先执行一个简单的链接数据的语句:
结果为:
可见该函数需要另外的一些东西才能使用!
做法如下:
第1步:
在php.ini中设定php的模块(扩展功能)的实际绝对路径,使用的关键字为:extends_dir,如下:
修改为:
第2步:
开启mysql的模块(扩展功能):
修改为:
然后,重启apache,后,浏览结果如下:
可见,这个时候,其实是表示该函数可以用了,只是还没有连接成功:
自然,这是因为还没有mysql数据库(服务器)。我们需要去安装。
mysql数据库的安装与配置
之后,一路安装完成,就开始进入“配置”过程了:
然后,重新运行刚才的php程序页面:
结果为:
这就表明:mysql安装成功,并在php的脚本代码中,可以“连接上”mysql数据库服务器了。
连接MySQL服务器
建立与MySQL数据库的连接,使用mysqli_connect()函数,它的语法格式如下:
mysqli mysqli_connect ([string server[, string username[, string password[, string dbname[, int port[, string socket]]]]]])
它的参数含义如下:
server:可选参数,MySQL服务器地址。username:可选参数,MySQL服务器用户名。password:可选参数,MySQL服务器用户密码。dbname:可选参数,要连接的数据库名字。port:可选参数,MySQL服务器的端口号,默认3306。socket:可选参数,使用设置的socket或者pipe。注意:前四个参数比较常用,后两个很少用到。
PHP选择MySQL数据库
PHP提供了mysqliselectdb()函数来选择MySQL数据库,它的语法格式如下:
<?php$server = "localhost"; $username = "root"; $password = "123456"; $dbname = "php_db"; // 快速写法 $mysqli = new mysqli ( $server, $username, $password, $dbname ); // 兼容写法 $mysqli = new mysqli ( $server, $username, $password ); mysqli_select_db ( $mysqli, $dbname ); // 对象写法 $mysqli = new mysqli (); $mysqli->connect ( $server, $username, $password ); $mysqli->select_db ( $mysqli, $dbname );?>
断开MySQL服务器
使用mysqli_close()函数来关闭与MySQL服务器的连接。
执行SQL语句
数据库的“增删改查”说到底都是一句SQL语句,PHP提供了mysqli_query()函数来执行SQL语句,它的语法如下:
mixed mysqli_query (mysqli link, string query[, int resultmode])
link : 是调用mysqli_connect()函数返回的mysqli对象,
query : 是要执行的SQL语句,
resultmode : 是可选参数,它的默认值是MYSQLISTORERESULT,如果需要查询的数据量很大,需要使用MYSQLIUSERESULT。
<?php$server = "localhost"; $username = "root"; $password = "123456"; $dbname = "account_db"; $mysqli = new mysqli ( $server, $username, $password, $dbname ); // 增 $result = mysqli_query ( $mysqli, "insert into account(username, password, email) values('张三', '123456', 'zhangsan@example.com')" ); // 删 $result = mysqli_query ( $mysqli, "delete from account where user='张三'" ); // 改 $result = mysqli_query ( $mysqli, "update account set password='abcdefg' where user='张三'" ); // 查 $result = mysqli_query ( $mysqli, "select * from account " ); mysqli_close ( $mysqli );?>
面向对象的编程-抽象类和接口「程序员培养之路第四十六天」
面向对象的编程-__autoload()「程序员培养之路第四十五天」
面向对象的编程-多态「程序员培养之路第四十四天」
人人都是程序员,希望在零碎的阅读时间里,给您一些技术提升。
1 准备工作
下载thinkphp框架,并搭建一个php项目,可参考之前写的其他文章。已部署好的php项目如下图。
2 配置数据库连接
在项目application目录下,找到database.php文件,输入数据库类型,服务器地址数据库名称,数据库用户名,密码,端口号。如下图。
3 获取数据库数据
在application-index-controller下面,创建一个User.php文件,定义命名控制器的命名空间,并编写一个获取用户的方法。接口方法如下图。完成后,在浏览器输入localhost/thinkphpdemo/public/index.php/index/User/getuser,查到用户表相关数据,说明从数据获取数据成功。
4 同时访问两个数据库数据
之前已经创建了一个数据库thinkphpdemo,再创建一个数据库thinkphpdemodbs,并创建一张t_classroom表,录入测试数据。
在刚才的user控制器,新建一个getUserAndClassroom的方法。先用常规方法,获取thinkphpdemo数据的user信息,在重新定义一个数据库连接,(注意,本次连接的是本地服务器的两个不同数据。连接thinkphpdemodbs,如果要连接不同服务器的数据,将127.0.0.1改成其他服务器的ip即可),并查询classroom数据,合并成一个数组。通过localhost/thinkphpdemo/public/index.php/index/User/getUserAndClassroom,获取到如下数据,说明两个数据请求成功。
短短几行代码,就实现了不同数据的数据访问,非常便捷,如果您想了解其他方面的内容,欢迎留言。
5 结束语
php是世界上最好的语言,谢谢阅读,欢迎关注。
现在网站开发主要语言有php,asp,jsp。其中php大概占据市场90%的份额,以其开源,成本低,等优势受到广大建站者的使用。今天介绍一下php搭配数据库mysql怎么使用。
如果在自己电脑上运行,可以先打开运行环境,小编用的是WampServer,网上有很多集成包可以使用,比如wamp,phpstudy等等,这个有疑问的话小编可以单独写篇文章介绍php环境问题。
php运行环境然后我们在根目录创建一个php文件,小编命名为db.php注意文件名称要取的有意义,不要aaa,bbb,ccc,或者123,111,等等,避免后期维护造成麻烦,网上也有一些文件命名的规则,比如驼峰命名,英文命名等,小细节体现一名优秀程序员的工作效率。
文件命名规范php文件命名上图可以作为参考借鉴。文件创建以后,就开始写php链接数据库代码。
<?php
//localhost 主机名 或者127.0.0.1 root 数据库账户然后就是数据库密码
$con = mysql_connect("localhost","root","");
if (!$con)
{
//如果连接失败提示mysql错误代码
die('Could not connect: ' . mysql_error());
}else{
echo 'mysql is ok';
}
// 关闭数据库连接
mysql_close($con);
?>
小编也写好了对应的代码注释,这个也是一个好习惯。
php链接数据库代码写好之后,打开浏览器运行一下,看看是否链接成功。
数据库链接成功我们修改一下密码看有什么提示呢
数据库链接出错根据这个提示我们就知道是密码不对,以后再项目中看到这个就知道怎么修改啦,
然后就是选库,数据库的增删查改等操作,难度一点点增加。希望这篇文章可以帮到有需要的朋友。
当你需要使用多个数据库连接的时候,就需要使用connect方法动态切换到另外一个数据库连接,假设存在另外一个数据库test,并且复制data过去更名为test,然后测试下面的示例:
页面Trace的显示信息可以看出来使用了两次数据库连接和执行了三次查询,并且数据库连接切换并没有影响默认的查询(第三个查询还是使用的默认数据库配置连接,test数据库中并不存在data表,如果连接的还是第二个数据库连接的话肯定会报错)。
有时候,我们只需要设置一些基本的数据库配置参数,可以简化成一个字符串格式定义(该格式为ThinkPHP使用规范,而不是PDO连接规范,不要和DSN混淆起来):
Db::connect('mysql://root@127.0.0.1/demo#utf8') ->query('select * from data where id = 1');
字符串格式的连接信息规范格式如下:数据库类型://用户名[:用户密码]@数据库服务器地址[:端口]/数据库名[?参数1=值&参数2=值]#数据库编码
Db类的connect方法会返回一个数据库连接对象实例,相同的连接参数返回的是同一个对象实例,除非你强制重新实例化,例如:
这样,每次调用都会重新实例化数据库的连接类。为了便于统一管理,你可以把数据库配置参数纳入配置文件,例如在应用配置文件中添加:
或者使用字符串方式定义'db_config' => 'mysql://root@127.0.0.1/demo',
上面的db_config配置参数不是在数据库配置文件中定义,而是在应用配置文件或者模块配置文件中定义。
然后,使用下面的方式来动态连接获取切换连接
Db::connect('db_config') ->query('select * from data where id=:id', ['id'=>3]);当connect方法传入的连接参数是字符串并且不包含/等特殊符号的话,表示使用的是预定义数据库配置参数。
1.什么是msSQL呢?
msSQL是指微软的SQLServer数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。SQL Server一开始并不是微软自己研发的产品,而是当时为了要和IBM竞争时,与Sybase合作所产生的,其最早的发展者是Sybase,同时微软也和Sybase合作过 SQL Server 4.2版本的研发,微软亦将SQL Server 4.2移植到Windows NT(当时为3.1版),在与Sybase终止合作关系后,自力开发出SQL Server 6.0版,往后的SQL Server即均由微软自行研发。
了解完mssql数据库之后,我们经常见到的是PHP+mysql数据库的组合,这个黄金搭档是公认的最佳组合,我们今天不说它了,今天来说说PHP+mssql吧,作为程序猿来讲,经常被各种需求轰炸,什么需求都有,今天正好在做小型项目时发现PHP需要与mssql数据库连接,第一感觉就是与mysql连接差不多,然后就下手开始了,但在我们的运行环境里面,很少有人去安装一些模块来支撑这个连接。下面我们一起来看看怎么连接的吧。
第一步:下载SQL Server驱动
首先来看看我们的sqlderver扩展是32位还是64位的,不是根据电脑的系统的位数判断的,而是根据php的位数判断的。如下图的红框所示查看,我们是64位的。
phpinfo()图片上面这图怎么查看,可通过下面代码
<?php
echo phpinfo();
?>
我这里用的php是PHP Version 7.3.4,要下载对应的扩展版本。
官方下载地下:https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-2017
1.下载完毕解压出来把php_pdo_sqlsrv_73_nts_x64.dll和
php_sqlsrv_73_nts_x64.dll
放到D:\phpstudy_pro\Extensions\php\php7.3.4nts\ext(放在你安装PHP的ext目录下面)
2.设置php.ini,把这二个dll模块加进来。
extension=php_sqlsrv_73_nts_x64.dll
extension=php_pdo_sqlsrv_73_nts_x64.dll
如下图:
注意:PHP Version 7.3.4对应的版本是php_sqlsrv_73_nts_x64.dll和php_pdo_sqlsrv_73_nts_x64.dll
第二步:安装ODBC驱动11
驱动11支持所有版本,所以果断下载11版本:官方下载地下:https://www.microsoft.com/en-us/download/details.aspx?id=36434
下载成功直接安装就可以
注意:此时要重新启动apache.
第三步:写代码测试是否能成功
<?php
$server = "localhost"; //服务器名称
$uid = "xxx"; //数据库用户名
$pwd = "123456"; //数据库密码
$db = "test"; // 数据库名
$connectionInfo=array("UID"=>$uid,"PWD"=>$pwd,"Database"=>$db);
$conn =sqlsrv_connect($server,$connectionInfo);
if( $conn == false) {
echo "连接失败!";
die( var_dump( sqlsrv_errors(), true));
}else{
echo "成功连接";
}
如果显示“成功连接”,说明已经连接成功了,快去庆祝一下吧
PHP连接mysql数据库是PHP新手们必须要掌握的一项技能,只要掌握了PHP对数据库进行增删改查等操作,就可以写出一些简单且常见的程序。如留言表,新闻页等。本篇文章主要给大家详细介绍PHP连接Mysql数据库的两种常用方法。
下面我们通过具体的代码示例来给大家详细介绍两种PHP连接mysql数据库的方法。
mysqli连接数据库和pdo连接数据库。
第一种方法:使用mysqli连接mysql数据库
代码实例如下:
<?php
$host='127.0.0.1';
$user='root';
$password='root';
$dbName='php';
$link=new mysqli($host,$user,$password,$dbName);
if ($link->connect_error){
die("连接失败:".$link->connect_error);
}
$sql="select * from admins";
$res=$link->query($sql);
$data=$res->fetch_all();
var_dump($data);
在经过一系列的连接操作后,我们再创建一个sql语句对其中数据表进行查询检验。在上述代码中,我们要先创建一些需要用到的变量,如数据库用户名、数据库名密码等。然后我们用面向对象的方式连接了名为php的数据库。再通过if条件语句,connect-error方法判断PHP连接数据库是否成功。
这里我们先登录phpmyadmin看看是否存在php数据库,从下图可以知道是存在php这个数据库的。
最后通过浏览器访问,结果如下图:
从图中可以得知,我们成功地连接了php数据库,并且能查询出数据表信息。
第二种方法:使用PDO连接数据库
代码示例如下:
<?php
$host='127.0.0.1';
$user='root';
$password='root';
$dbName='php';
$pdo=new PDO("mysql:host=$host;dbname=$dbName",$user,$password);
$sql="select * from admins";
$data=$pdo->query($sql)->fetch();
var_dump($data);
PHP连接Mysql步骤以上就是关于PHP连接数据库查询数据的两种常用方法详解,更多相关教程请访问php中文网mysql视频教程,欢迎参考学习!