建立数据库连接 mysql_connect
一般情况下常说的LAMP架构指的是:Linux、Apache、Mysql、PHP
mysql扩展进行数据库连接的方法
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
mysqli扩展
$link = mysqli_connect('mysql_host', 'mysql_user', 'mysql_password');
PDO扩展
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
查询
<?php
$link = mysql_connect('127.0.0.1', 'code1', '') or die('数据库连接失败');
mysql_select_db('code1');
mysql_query("set names 'utf8'");
$result = mysql_query('select * from user limit 1');
$row = mysql_fetch_assoc($result);
print_r($row);
Array ( [id] => 526256846 [name] => 王二 [age] => 19 [class] => 高三五班 [status] => 0 [create_time] => 2016-10-04 11:03:22 )
在数据库建立连接以后就可以进行查询,采用mysql_query加sql语句的形式向数据库发送查询指令。
$res = mysql_query('select * from user limit 1');
对于查询类的语句会返回一个资源句柄(resource),可以通过该资源获取查询结果集中的数据。
$row = mysql_fetch_array($res); var_dump($row);
默认的,PHP使用最近的数据库连接执行查询,但如果存在多个连接的情况,则可以通过参数指令从那个连接中进行查询。
$link1 = mysql_connect('127.0.0.1', 'code1', ''); $link2 = mysql_connect('127.0.0.1', 'code1', '', true); //开启一个新的连接 $res = mysql_query('select * from user limit 1', $link1); //从第一个连接中查询数据
在MySQL中,执行插入语句后,可以得到自增的主键id,通过PHP的mysql_insert_id函数可以获取该id,该id的作用非常大,通常可以用来判断是否插入成功,或者作为关联的id进行其他的数据操作。
4个fetch函数
/**
* 4个fetch函数,都可以通过循环来获取下一个数据
* 先使用查询语句获得资源,接下来才能使用下面的函数
* mysql_fetch_row()
* mysql_fetch_array()
* mysql_fetch_assoc()
* mysql_fetch_object()
*/
mysql_query("set names utf8");//插入或读出一律以utf-8的形式
$query=mysql_query('select * from test');//返回的是资源标识符
mysql_fetch_row($query);//返回查询数据的第一条数据(以一维数组的形式),并将指针下移,直至为空
//输出索引值和键值(关联)对的数组,row返回的数组中是没有键值对的
/*对于mysql_fetch_array()
* 第二个参数
* MYSQL_ASSOC--关联数组
* MYSQL_NUM--索引数组
* MYSQL_BOTH--默认
*/
$arr=mysql_fetch_array($query);
echo $arr['name'];//不用记位置,直接通过键访问值
//和上一个函数的第二个参数的效果是一样的
mysql_fetch_assoc($query);//获取和显示数据
//从表art里按时间date取最新一条记录的title字段的值并打印
$q=mysql_query('select title from art order by date desc limit 1');
$date=mysql_fetch_row($q);
echo $date[0];
//对象获取
$ars=mysql_fetch_object($query);
echo $are->name;
//获取结果集的数量
$result=mysql_query('select * from fruitshop');
mysql_num_rows($result);//(数据库表中的)结果集中行的数目
//mysql_result函数,返回结果集中的一个字段的值
$result=mysql_query('select count(*) from fruitshop');
//mysql_num_rows($result);//
$arr=mysql_fetch_row($result);
echo $arr[0];
//获取结果集中的指定行的指定字段
mysql_result(结果集,取的行数,字段名称);//从0开始
//mysql_affected_rows--受影响的记录行数
/*
* 数据库的增删改
* 通过mysql_query向数据库传递insert,update,delete
* mysql_query('update fruitshop set num=5 where id=1');
*
*/
mysql_affected_rows($con)//con位连接标识符,这个是连接时返回的,只能够获取带前一条影响的行数