连接MySQL服务器
建立数据库连接函数
param1:数据库地址
param2:数据库用户名
param3:数据库密码,新的数据库密码为空
$con = mysql_connect(param1,param2,param3)
返回值:连接成功返回mysql连接标识符,否则返回false.
检测数据库是否安装
function_exists('mysql_connect')
返回值:返回true表明安装,否则没安装.
选择操作数据库
在连接成功数据库后,在选择一个用来操作的数据库
param1:用来操作的数据库的名称
mysql_select_db(param1);//选择操作数据库函数
返回值:选择成功返回true,否则返回false.
选择当前连接编码
mysql_query("set names utf8");//里面的utf-8就是编码。
关闭数据库
$con:连接数据库时返回的标识符。
mysql_close($con);
打印上一个错误函数
mysql_error();
数据库语句说明(只说明变量项,其它均为语句)
1、insert into user(name) values(“abc”):给数据库插入数据
1.user是表名
2.name是表中的字段(可以用,连接多个字段来同时插入数据例如insert into test(name,age,sex) values("abc",13,'男'))
3.abc是要插入的值
2、select name from user:配合mysql_query就是可以从指定数据库返回该字段下的所有数据
1.name代表的是字段名,可以用*代表所有字段,当然也可以指定字段,例如你的数据库结构是 user(name,age,sex),当你只想查询name的时候就写select name from user,当你只想查询name和age的时候就写select name,age from user(用,连接起来)。
2.user代表的是表名
3.update user set name=’gt’ where id=1:修改数据库中的某一项的值
1.user代表的是表名
2.name代表的是字段名
3.id=1代表了在一个字段为1的行里,修改name为'gt',id其实就是一个查找值,你得告诉数据库是哪一行,所以你跟他说这一行的id等于1,如果id等于1你就去修改这一行的name
4.delete from user where name = ‘guotao’:删除数据库中含有指定字段值的一条数据
1.user代表的是表名
2.name代表的是字段名
3.guotao代表的指定的字段的值
如果要删除整个表的数据可以用
delete from user
5.limit语句:limit语句一般用在前面那些语句的后面,其功能就是为了指定范围,例如上面说的删除,假如有很多条数据的name都是guotao那么都会被删除,但是我们只想删掉第一条,那么就应该写delete from user where name = ‘guotao’ limit 1.
6.like语句:like语句可以用来在数据库中搜索数据(例如用‘你好’搜索到‘你好世界’)
假如我们要删第2条到第3条,那么应该写delete from user where name = 'guotao' limit 2,3
如果还不懂,用select来说明就是对于
select * from table limit m,n
其中m是指记录开始的index,从1开始,表示第一条记录
n是指从第m+1条开始,取n条。
select * from tablename limit 3,6
即取出第3条至第6条,4条记录
数据插入
mysql_query('insert into test(name) values("abc")'); //abc即是要插入的值
例如:mysql_query("insert into user(name, age, class) values('李四', 18, '高三一班')"); //这里是一次插入多值
返回值:插入成功返回true,否则返回false
数据删除
mysql_query("delete from user where name = 'guotao'") //删除name='guotao'的所有行,如果只想删一行就在最后写limt 1
数据查询
在数据库建立连接以后就可以进行查询,采用mysql_query加sql语句的形式向数据库发送查询指令。
例如:从 "Persons" 表中选取所有 FirstName='Peter' 的行
<?php
$con = mysql_connect("localhost" ,"peter" ,"abc123" );
if (!$con )
{
die ('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db" , $con );
$result = mysql_query("SELECT * FROM Persons
WHERE FirstName='Peter'" );
while ($row = mysql_fetch_array($result ))
{
echo $row ['FirstName' ] . " " . $row ['LastName' ];
echo "<br />" ;
}
?>
数据修改
mysql_query("update user set name='gt' where phoneNumber=1234567") //表明修改name字段为gt这一行的phoneNumber的值为1234567
4个fetch函数(用来获取和显示数据)
mysql_fetch_row(
p a r a m 1 ,
param2);
param1:使用mysql_query()执行select语句返回的资源句柄
param2:这是一个可选参数默认值是MYSQL_NUM,用来控制该函数的返回值类型,他的取值可以有MYSQL_ASSOC(关联数组,只函键值的数组)、MYSQL_NUM(数字数组、只函数字索引的数组)、MYSQL_BOTH(默认,即函数字又函键值的索引)
说明:这个函数就类似一个迭代器,每次只取出资源句柄(资源句柄里可能有很多条数据)里的一条数据(不含键值,用下面的mysql_fetch_array()函数含键值),当所有数据都取出后返回false;
例如查询一个表中的所有内容
<?php
header("Content-type: text/html; charset=utf-8" );
$con = mysql_connect("localhost" , "root" , "123456" ) or die ("数据库连接失败" );
mysql_select_db("test" ) or die ("数据库选择失败" );
mysql_query("set names utf-8" );
$res = mysql_query('select * from user' ) or die ("查询数据失败" );
while ($row = mysql_fetch_row($res )){
print_r($row );
echo '<br/>' ;
}
echo '执行完毕' ;
?>
输出结果
Array ( [0] => guotao [1] => 18984495856 )
Array ( [0] => ?? [1] => 18984495856 )
执行完毕
mysql_fetch_array(
p a r a m 1 ,
param2)
param1:使用mysql_query()执行select语句返回的资源句柄
param2:这是一个可选参数默认值是MYSQL_BOTH,用来控制该函数的返回值类型,他的取值可以有MYSQL_ASSOC(关联数组,只函键值的数组)、MYSQL_NUM(数字数组、只函数字索引的数组)、MYSQL_BOTH(默认,即函数字又函键值的索引)
说明:这个速度比mysql_fetch_array慢,但是取得的数据含可以含有键值,和mysql_fetch_row一样每次只取一条数据。
<?php
header("Content-type: text/html; charset=utf-8" );
$con = mysql_connect("localhost" , "root" , "123456" ) or die ("数据库连接失败" );
mysql_select_db("test" ) or die ("数据库选择失败" );
mysql_query("set names utf-8" );
$res = mysql_query('select * from user' ) or die ("查询数据失败" );
while ($row = mysql_fetch_array($res )){
print_r($row );
echo '<br/>' ;
}
echo '执行完毕' ;
?>
输出结果
Array ( [0] => guotao [name] => guotao [1] => 18984495856 [phoneNumber] => 12345678 [2] => 123456 [password] => 123456 )
Array ( [0] => ?? [name] => ?? [1] => 18984495856 [phoneNumber] => 12345678 [2] => 123456 [password] => 123456 )
执行完毕
mysql_fetch_assoc(
p a r a m 1 ,
param2)
说明:其实和上面两个函数一样,只是他第二个参数的默认值是MYSQL_ASSOC.
mysql_fetch_object($param1)
param1:使用mysql_query()执行select语句返回的资源句柄
说明:每次取一条数据,并把这条数据变成对象,这条数据的每一个字段变成这个对象的属性。
<?php
header("Content-type: text/html; charset=utf-8" );
$con = mysql_connect("localhost" , "root" , "cs123456" ) or die ("数据库连接失败" );
mysql_select_db("zj_project" ) or die ("数据库选择失败" );
mysql_query("set names utf8" );
$res = mysql_query('select name,phoneNumber from user' ) or die ("查询数据失败" );
while ($row = mysql_fetch_object($res )){
print_r($row );
echo '<br/>' ;
}
echo '执行完毕' ;
?>
输出结果
stdClass Object ( [name] => guotao [phoneNumber] => 18984495856 )
stdClass Object ( [name] => ?? [phoneNumber] => 18984495856 )
执行完毕
一些PHP的MySQL的内置函数
mysql_num_rows($param1)
$param1:使用mysql_query()执行select语句返回的资源句柄
说明:可以返回资源句柄所含的数据数量。
mysql_result(
p a r a m 1 ,
param2,$param3)
param1:使用mysql_query()执行select语句返回的资源句柄
param2:行号
param3:字段名(也可以用0,1,2……索引代替)
说明:可以返回数据库中指定位置的数据
mysql_affected_rows($param1)
param1:连接标识符 就是mysql_connect()函数返回的连接标识符
说明:返回上一次操作被修改的数据条数。