正午游泳很海皮

 hi

■ PHP 操作 MySQL

正午又去游泳了,其实本来打算是前几天去的,什么人知天公不作美,周六都降水。明日实在也一样的,有点中雨,可是游获得泳,比怎么着都好

 

1、PHP&MySQL

“ PHP 开发网站 其实就是 PHP 操作 MySQL 增加和删除改查。”

—–PHP内置MySQL函数学习(三)—–

 

预备干活

q:什么是服务器?

<?php
$con=mysqli_connect(‘localhost’,’root’,”,’info’);
if($con){
echo “连接成功”;
}else{
echo “shit”;
}
//mysql_close($con);
if(mysqli_select_db($con, ‘info’)){
echo “数据库选用成功”;
}else{
echo “shit2”;
}
/*

a:一般有两层意思:

—-mysql_num_rows()

 

获得结果集的行数

①物理上的一台实在的根底;

$query=mysqli_query($con, ‘select * from test’);//产生结果集

 

echo mysqli_num_rows($query);

②能提供某种服务的经过,也叫做服务器。

用法简单冷酷,但用处照旧相比较灵敏的,判断/输出

例如:

—-mysql-result

Apache 称为 Web服务器。

回去结果集中一个字段的值

MySQL 称为 MySQL服务器(数据库服务器)。

mysqli就像从未,补一局部

 

—php中的PDO,mysql,mysqli

 

PHP-MySQL 是 PHP 操作 MySQL 资料库最原始的 Extension ,PHP-MySQLi 的 i
代表 Improvement ,提更了针锋相对进阶的效应,就 Extension
而言,本身也加码了安全性。而 PDO (PHP Data Object) 则是提供了一个Abstraction Layer 来操作资料库

q:PHP 如何连接操作 MySQL 服务器 ?

现实的界别也讲不出,间接去搜了探望就好了

a:

—-mysqli_affected_rows($con)

①通过 mysql_洋洋洒洒函数 连接操作 MySQL;

受影响的行数

②经过 mysqli( 面向对象 的方法)连接操作 MySQL;

貌似做判定,比如,当插入的为同一的,突显为0;感觉,类似mysql的反馈

③经过 PDO(也是 面向对象 的措施,不过比 mysqli 更强硬)。

次日开班小实践以下

 

2、Linux

使用 mysql_雨后春笋函数 是【面向进程】风格的缓解格局(即 直接调用函数来操纵
MySQL)。

虚构机装东西依然麻烦。

 

xshell终于弄好了,果然server界面包车型大巴centos不是那么好整的,万幸有妃子

使用 mysqli
是【面向对象】风格的化解办法(其实正是把各样函数封装成了对象的点子)。

进去centos6后,输入用户名和密码,开头搞网络连接难题

 

原网址忘了,本身写一些吗

PDO 封装得更有力(大家不要关注是什么样数据库,因为 PDO
已经分头做了处理。通过它能连接oracle、MySQL、SQLserver 等数据库)。


 

vim /etc/sysconfig/network-scripts/ifcfg-eth0

 

输入i进入编写格局

笔者们先读书 mysql_多重函数,到后期 做项目为了兼容性 我们再攻读 PDO。

把htcp依然什么的改变none,onboot项改成yes

 

然后在底下输入IPADD奥迪Q7=192.168.0.10

 

NETMASK=255.255.255.0

●在 PHP 中连接 MySQL数据库 使用 mysql_connect()函数。

GATEWAY=192.168.0.2

 

此地的多少个地方,都以本身本身的网络的地方,查询办法是windows界面win+r,输入cmd,输入ipconfig/all

利用情势:

找到相应的地方,假若是有线网络,就找有线网卡的,假使是有线就找无线的,同理可得即是要对应;如果换了互连网,相应的布置也要变

mysql_connect(服务器地址,用户名,密码 [,端口])

一经查到的地方是192.168.0.1

 

这就是说在linux中输入就改为

例如:

 192.168.0.a a不为1就行

$con = mysql_connect(‘192.168.1.199′,’root’,’111111′,3306);

末端的网关是192.168.0.b b不对等1,不等于a

 

下一场重返虚拟机中的linux,按下esc,输入:wq,保存退出文件编写制定

注意:

输入service network restart,重启互连网服务

①如果 mysql_connect 函数的 暗许参数 为:

下一场到刚刚的windows下的cmd窗口,输入ping
192.168.0.10(那是自家要好安装的,你输入你协调的值好不佳)

服务器地址 的私下认可值为:’localhost’

假定成功,就是网络连接ok了

用户名 的暗许值为:’root’

至于xshell的设置,很简单

密码 的暗许值为:” (密码暗中认可为空)

新建连接,主机的岗位输入192.168.0.10,然后记得去存款和储蓄上用户名和密码,连接测试就行了

端口 的暗许值为:3306

 

 

 

② mysql_connect 函数的回到值 是3个资源类型,它象征与 MySQL服务器
的“连接”。

消除了xshell的难言之隐,爽爽爽!不想写其余的了,linux玩起来啊~~~

(★ PHP 的 财富类型 正是“通道”。沿着“通道”就能赢得财富。)

 

 

●在 PHP 中给 MySQL数据库 发送MySQL查询 使用 mysql_query()函数。

 

动用格局:

mysql_query(SQL查询语句 [,连接])

 

例如:

$sql = ‘use j_db’; 

mysql_query($sql,$con); // $con 是一个“连接”。

 

$sql = ‘set names utf8’; //设置编码

mysql_query($sql,$con);

 

$sql = ‘select * from category’;

$qr = mysql_query($sql,$con); //
查询成功就回去【查询结果】(属于二个能源类型)。

 

 

注意,mysql_query 的重临值,有二种情状:

①当 SQL查询语句 为 insert、update、delete 时,则赶回 bool值。

②当 SQL查询语句 为 select、desc 那个会回来结果集的说话时,则赶回
财富类型 或 false。

 

//★惯用法:判断 MySQL操作 是还是不是中标,倘使不成事就输出错误音信。

 

if(!$qr){

echo mysql_error($con); // mysql_error() 用于查错。

}else{

echo ‘操作成功’;

}

 

 

 

mysql_fetch_assoc(查询结果)

————成效:从结果集中取得一行作为数组。

————注意:再次回到 关联数组
,以表中的列名作为数组成分的键。例如下标为:[“id”]、[“name”]。

 

例如:

 

$list = array();

while($row = mysql_fetch_assoc($qr)){

$list[] = $row;

}

 

如上代码表示,从 查询结果 $qr 中,以数组的方式取出每一行,并放置数组
$list 中,组成三个二维数组。

 

 

/*****************************************

包裹二个函数,直接回到 select 结果集

参数 $sql 表示 SQL查询语句;

参数 $con 表示 “连接”。

******************************************/

 

function get_select($sql,$con){

 

$qr = mysql_query($sql,$con);

 

/*

判定是不是查询成功:

假定查询战败,则输出错误消息,并赶回 false 退出函数。

比方查询成功,则从【查询结果】中循环取出每一行,放到数组$list内,组成二维数组,并再次来到。

*/

 

if(!$qr){

echo mysql_error($con);

return false;

}else{

$list = array();

 

while($row = mysql_fetch_assoc($qr)){

$list[] = $row;

}

 

return $list;

}

}

 

 

mysql_fetch_row(查询结果)

————成效:从结果集中取得一行作为数组。

————注意:重临 索引数组 。例如下标为:[0]、[1]、[2]。

 

 

mysql_fetch_array(查询结果)

————成效:从结果集中取得一行作为数组。

————注意:重回 关联数组 及 索引数组。

 

 

mysql_error(连接)

————功能:重返上三个 MySQL 操作的语法错误音信(用于查错)。

 

 

mysql_insert_id(连接)

————成效:再次来到刚插入的新闻中 increment 列的值。(常用来再次来到 id )

 

 

mysql_affected_rows(连接)

————成效:取得前一次 MySQL 操作所影响的笔录行数,再次回到整型数值。

 

★注意:如果 mysql_query 再次来到true,只表达了是从mysql的语法上是看不错的了,即
没有语法错误。不过并不一定对表中的数额产生了影响。

 

由此,大家要看清 操作是或不是成功,则须要依照 有多少行受到了震慑来判定。

即 大家须求运用 mysql_affected_rows 函数来判定 insert、update、delete
语句是还是不是中标。

 

/* 判断 insert、update、delete 语句是还是不是成功的代码 */

 

if(!mysql_query($sql,$con)){

echo ‘SQL操作失利,请检查MySQL查询语句的语法。’;

}else if(!mysql_affected_rows($con)){

echo ‘您的操作没有对其余数据产生震慑。’;

}else{

echo ‘恭喜你!SQL操作成功!’;

}

 

 

mysql_close(连接)

————成效:关闭钦赐的 MySQL 连接。(没须要的!除非在cgi形式下)

 

 

剧本每运维1回,新建叁遍连续,增大了MySQL的接二连三负担。

java中有连接池的概念,PHP中不得以。每一趟刷新浏览器,脚本从头到尾执行叁遍,MySQL反复连接。

 

假诺不想反复连接,即 PHP脚本停止后,财富也不自由,能够用
mysql_pconnect()函数,但要求 PHP 运行在 fast-cgi 模式下。

 

q:什么是cgi模式?

a:

cgi格局正是把 PHP 当成进程来施行,然后 Apache 进度 和 PHP 过程通讯。

作者们一般选择的是,把 PHP 当成 Apache 的叁个模块来运作,相当于向 Apache
请求3遍,就调一下 PHP 模块。请求甘休了,被调的 PHP 模块也就自由了。