//当编码设置错误时,可以在php的第一行添加header(),设置编码
//当如果不设置的话,那么从数据库中读取的中文字符有可能会出现乱码
header("Content-type:text/html;charset=utf-8");
此文章只是mysql_*函数的一些基本用法,现在在php7.0中已经将mysql_*的函数移除,现在主要使用mysqli等进行数据库操作。本文只是为了让大家对php对mysql操作有一个基本认识。
数据库中核心函数
mysql_connect($host, $user, $pass); //建立数据库连接
mysql_select_db($database); //选择数据库
mysql_query($statement,[$conn]); //执行mysql语句
mysql_error([$conn]); //mysql中报错的信息,可选参数数据库资源标识符
mysql_fetch_row($result); //fetch函数
mysql_fetch_array($query);
mysql_fetch_object($query); //获取查询对象
mysql_num_rows($query); //返回查询的条数
mysql_result($query, rows, colume); //返回结果集中一个字段的值
mysql_affected_rows($conn); //返回受影响(对数据库的增删改)的行数
mysql_close($conn); //关闭数据库
函数详解
//建立数据库连接,使用mysql数据库之前需要首先通过这个函数建立连接
//成功返回资源标识符,失败返回flase
$conn = mysql_connect($host, $user, $pass);
//选择数据库,参数为数据库名
//成功返回true,失败返回flase
mysql_select_db('database');
//对数据库的请求操作都是靠mysql_query进行的,参数为sql语句
//当执行的sql 语句是select语句时,返回资源标识符,可以到内存寻找结果集
//默认的,php使用最近数据库连接执行查询,但是存在多个连接时,则需要通过参数指定从哪个连接执行
mysql_query($statement);
mysql_query($statement, $conn1);
mysql_query($statement, $conn2);
//fetch函数
//当sql语句为查询语句时,使用完mysql_query语句后,查询得到的结果集将放在内存,然后返回一个资源标识符给用户。
//那么用户需要通过这个资源标识符$query去获取这些数据。而fetch函数就是拿来获取数据的函数。
//索引数组,键值即为数字,0,1,2,3...
//关联数组,键值即为一些有意义的字符或数字。可以看做数据库的字段名。
mysql_fetch_row($result);
//只从结果集中获取一条查询的数据,并且产生一个索引数组
mysql_fetch_array($query);
只从结果集中获取一条查询的数据,并且产生一个索引数组和关联数组(关联数组即是有键值的),速度比fetch_row慢一点
//可以通过键值获取值
//这个函数还带有第二个参数,这个参数可使fetch_array获取的结果为不同的数组
1、MYSQL_ASSOC-关联数组
2、MYSQL_NUM-索引数组
3、MYSQL_BOTH-默认,都产生
$arr = mysql_fetch_object($query);
//获取的是一个对象,可以获取到一个对象,赋值给arr。数据库的表段便是arr的属性名
eg.echo $arr->names
//关闭数据库连接,参数为数据库连接后产生的资源标识符
//当使用完数据库后,要及时关闭数据库连接,以免使用占用过多资源
mysql_close($conn);
其他函数
//一般配合核心函数进行使用
mysql_error(); //提示数据库出错信息
//在mysql中,执行插入语句以后,可以得到自增的主键id,通过PHP的mysql_insert_id函数可以获取该id。
//这个id的作用非常大,通常可以用来判断是否插入成功,或者作为关联ID进行其他的数据操作。
$uid = mysql_insert_id();
//mysql中的统计函数
mysql_num_rows($query);
//获取结果集的行数
//可以判断是否获取结果集,然后进行结果集的输出
mysql_result($query, rows, colume);
//返回结果集中一个字段的值
//第一个参数为资源标识符
//第二个为要取的行号,从0开始
//第三是字段名
mysql_affected_rows($conn);
//返回受影响(对数据库的增删改)的行数,但是只能显示最近一条sql语句修改的影响行数
//参数为连接标识符
例子
$conn = mysql_connect('127.0.0.1', 'root', '123456'); //建立数据库连接
mysql_select_db('database'); //选择数据库
//设置一下当前连接使用的字符编码,一般的我们会使用utf8编码。
mysql_query("set names 'utf8'");
echo mysql_error(); //提示数据库出错信息,如果有报错则显示
//使用mysql_num_rows获取结果集的行数
//可以判断是否获取结果集,然后进行结果集的输出
$query = mysql_query('select * from test');
if($query && mysql_num_rows($query)) {
//output
while($row = mysql_fetch_row($query)) {
print_r($query);
}
}
else {
//no data
}
//插入等操作也是通过mysql_query进行
mysql_query("INSERT INTO table(herf1, herf2) VALUES ('$arg1', '$arg2')");
//在mysql中,执行插入语句以后,可以得到自增的主键id,通过PHP的mysql_insert_id函数可以获取该id。
//这个id的作用非常大,通常可以用来判断是否插入成功,或者作为关联ID进行其他的数据操作。
$uid = mysql_insert_id();
mysql_close($conn); //关闭数据库