一、mysql_connect()——建立数据库连接
<?php
header("content-type:text/html;charset=utf-8");
if($con = mysql_connect('localhost','root','root')) {
echo "连接成功";
}
else {
echo "连接失败";
}
//localhost:服务器
//root:用户名
//root:密码
?>
1、连接成功,返回 MySQL标识符;
2、连接失败,返回false。
判断PHP是否已经安装mysql扩展:
<?php
if(function_exists('mysql_connect')) {
echo "mysql扩展已经安装";
}
?>
二、数据库扩展
PHP中一个数据库可能有一个或者多个扩展,其中既有官方的,也有第三方提供的。像Mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行连接与操作。
不同的扩展提供基本相近的操作方法,不同的是可能具备一些新特性,以及操作性能可能会有所不同。
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);
三、mysql_select_db()——选择数据库
1、设置字符集
mysql_query("set names 'utf8'");
2、选择数据库
mysql_select_db("db_name");
连接成功返回TRUE,连接失败返回false。
存在情况:(1)数据库不存在;(2)无权限操作数据库
四、 mysql_close()——关闭数据库连接
$link = mysql_connect("localhost","root","root");
mysql_close($link);
五、mysql_query()—— 执行一条SQL语句
mysql_query("insert into table (name) values('abc')");
返回值根据SQL语句不同而各有不同:
1、insert语句成功返回TRUE,失败返回FALSE
2、对于查询类的语句会返回一个资源句柄(resource),可以通过该资源获取查询结果集中的数据。
插入新数据到mysql中:
$sql = "insert into user(name, age, class) values('李四', 18, '高三一班')";
mysql_query($sql); //执行插入语句
通常数据都是存储在变量或者数组中,因此sql语句需要先进行字符串拼接得到。
$name = '李四';
$age = 18;
$class = '高三一班';
$sql = "insert into user(name, age, class) values('$name', '$age', '$class')";
mysql_query($sql); //执行插入语句
六、mysql_error()——返回mysql错误信息
echo mysql_error();
七、 mysql_insert_id()——获取自增主键ID
在mysql中,执行插入语句以后,可以得到自增的主键id,通过PHP的mysql_insert_id函数可以获取该id。
$uid = mysql_insert_id();
这个id的作用非常大,通常可以用来判断是否插入成功,或者作为关联ID进行其他的数据操作。
八、mysql_fetch_——获取和显示数据
1.mysql_fetch_row()
返回整型下标的数组,一次返回一行数据,然后指针下移
2.mysql_fetch_array()
返回整型下标(索引数组)和关联下标数组,一次返回一行数据,然后指针下移;
mysql_fetch_array($result,""),第二个参数可取三个值:
1.MYSQL_ASSOC——关联数组;
2.MYSQL_NUM——数字数组;
3.MYSQL_BOTH——两者皆有(默认)
3.mysql_fetch_assoc()
返回关联数组
4.mysql_fetch_object()
输出对象
调取用:$obj->name
$query = mysql_query("select * from test");
$result = mysql_fetch_object($query);
var_dump($result);
echo $ressult->name; //输出名字
test数据库:
id(1,2,3)
name(苹果,香蕉,西瓜)
$query = mysql_query("select * from test");
$result = mysql_fetch_row($query);
var_dump($result);
返回查询到的资源的第一条数据:
array(2) { [0]=> string(1) "1" [1]=> string(6) "苹果" }
while循环输出所有结果:
while($result = mysql_fetch_row($query)) {
var_dump($result);
}
输出结果:
array(2) { [0]=> string(1) "1" [1]=> string(6) "苹果" } array(2) { [0]=> string(1) "2" [1]=> string(6) "香蕉" } array(2) { [0]=> string(1) "3" [1]=> string(6) "西瓜" }
一条一条输出:
$row1 = mysql_fetch_row($query); //第一条数据
var_dump($row1);
$row1 = mysql_fetch_row($query); //第二条数据
var_dump($row1);
$row1 = mysql_fetch_row($query); //第三条数据
var_dump($row1);
$row1 = mysql_fetch_row($query); //bool(false)
var_dump($row1);
$row1 = mysql_fetch_row($query); //bool(false)
var_dump($row1);
输出结果:
array(2) { [0]=> string(1) "1" [1]=> string(6) "苹果" } array(2) { [0]=> string(1) "2" [1]=> string(6) "香蕉" } array(2) { [0]=> string(1) "3" [1]=> string(6) "西瓜" } bool(false) bool(false)
只输出一个字段:
$query = mysql_query("select name from test");
while($result = mysql_fetch_row($query)) {
var_dump($result);
}
输出结果:
array(1) { [0]=> string(6) "苹果" } array(1) { [0]=> string(6) "香蕉" } array(1) { [0]=> string(6) "西瓜" }
九、mysql_num_rows()——结果集中行的数目
输出结果为一个数字。
$query = mysql_query("select * from test");
mysql_num_rows($query);
用途:判断取出的结果是否有数据,如果有则输出数据
$query = mysql_query("select * from test");
if($query && mysql_num_rows($query) != 0)
{
//输出结果
while($row = mysql_fetch_row($query)) {
echo $row[0];
}
}
else {
echo "没有数据";
}
十、mysql_result()——返回结果集中一个字段的值
三个参数:结果集的地址、行号(0开始)、字段名或字段位置(0,1,2……)(可为空,默认为第一个字段)
$query = mysql_query("select * from test");
mysql_result($query,0,'name');
十一、mysql_affected_rows()——受影响的记录行数
返回前一次受insert、update、delete影响的记录行数
参数:连接标识符
<?php
$link = mysql_connect('127.0.0.1', 'code1', '') or die('数据库连接失败');
mysql_select_db('code1');
mysql_query("set names 'utf8'");
$result = mysql_query('delete from user limit 1');
echo "删除的数据条数为:".mysql_affected_rows($link);