一、建立与关闭连接,使用mysql_connect()和mysql_close(),如:
//使用mysql_connect连接数据库
$conn1 = mysql_connect("localhost","root","root");
if($conn1){
echo "连接成功!\n";
}else{
echo "连接失败!\n";
}
//指定连接mysql数据库时的端口
$conn2 = mysql_connect("localhost:3306","root","root");
if($conn2){
echo "连接成功!\n";
}else{
echo "连接失败!\n";
}
//使用错误控制输出符"@",控制连接失败后的信息(用于屏蔽错误信息)
$conn3 = @mysql_connect("localhost:3306","root","错误密码");
if($conn3){
echo "连接成功!\n";
}else{
echo "连接失败!\n";
}
Note:控制运算符:@,当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
//使用or die,当连接失败时,输出错误信息,并结束脚本(注意:当失败时,会结束脚本,后面的代码将不执行)
$conn4 = @mysql_connect("localhost:3306","root","root") or die("连接数据库服务器失败");
echo "使用or die时,连接失败时,此句不会执行!";
//操作完数据库后,使用mysql_close()函数关闭连接,释放资源。通常不需要使用mysql_close() ,因为已打开的非持久连接会在脚本执行完毕后自动关闭。
if($conn1) mysql_close($conn1);
if($conn2) mysql_close($conn2);
if($conn3) mysql_close($conn3);
if($conn4) mysql_close($conn4);
二、选择数据库,使用mysql_select_db(),如:
//使用mysql_select_db()选择数据库
mysql_select_db("phpstu");
//使用mysql_select_db()指定数据库时,指定与之对应的连接
mysql_select_db("phpstu",$conn) or die("数据库连接失败");
三、执行SQL语句
mysql_query函数:向指定的数据库服务器发送一条 MySQL 查询(不支持多条查询)。
1、使用mysql_query()对数据库执行增、删、改操作时,返回一个布尔类型的值。执行成功返回true,失败返回false。
$conn = @mysql_connect("localhost:3306","root","root") or die("连接数据库服务器失败");
mysql_select_db("phpstu",$conn) or die("数据库连接失败");
mysql_set_charset("utf8"); //设置当前连接的默认字符集。解决中文乱码问题。
//mysql_query("set names utf8"); //设置当前连接的默认字符集,功能同上,建议使用上一句,不推荐使用此句。
// echo mysql_client_encoding(); //返回当前字符集的名称
//增
$sql = "insert into user (uname,upassword) values('刘刘','liuliu')";
$result = mysql_query($sql);
//改
$sql = "update user set uname = '刘' where uname = '刘刘'";
$result = mysql_query($sql);
//删
$sql = "delete from user where uname = '刘刘2'";
$result = mysql_query($sql);
2、使用mysql_query()对数据库进行查询操作,查询成功返回一个resouse(包括查询到0条记录的情况),查询出错(SQL语句错误时)返回False。使用mysql_fetch_row()、mysql_fetch_assoc()、mysql_fetch_array()、mysql_fetch_object()等函数接收返回的数据。
(1)mysql_fetch_row,返回存储结果集的第一行数据的数组,该数组以数字作为键名。依次调用 mysql_fetch_row()将返回结果集中的下一行,如果没有更多行则返回 FALSE。
$sql = "select * from user";
$result = mysql_query($sql);
while($row = mysql_fetch_row($result)){
echo "<pre>";
var_dump($row);
echo "</pre>";
}
(2)mysql_fetch_assoc,返回存储结果集的第一行数据的数组,该数组以字段名作为键名。依次调用 mysql_fetch_assoc()将返回结果集中的下一行,如果没有更多行则返回 FALSE。
$sql = "select * from user";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
echo "<pre>";
var_dump($row);
echo "</pre>";
}
(3)mysql_fetch_array,返回存储结果集的第一行数据的数组。依次调用 mysql_fetch_object()将返回结果集中的下一行,如果没有更多行则返回 FALSE。
//定义:array mysql_fetch_array ( resource result [, int result_type]),
//第二个参数的值可以为:MYSQL_BOTH(3)、MYSQL_NUM(2)、MYSQL_ASSOC(1),默认为3,如:
//参数为MYSQL_NUM(2)、MYSQL_ASSOC(1)时,分别等同于mysql_fetch_assoc、mysql_fetch_row
//参数为MYSQL_BOTH(3)时,同时可以使用数字和字段做键名。
//当查询语句中字段使用了别名时,不能再用原来的字段名访问其内容。
//有一点很重要必须指出,用 mysql_fetch_array()并不明显比用mysql_fetch_row()慢,而且还提供了明显更多的值。
//此函数返回的字段名大小写敏感。
$sql = "select * from user";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
echo "<pre>";
var_dump($row);
echo "</pre>";
}
(4)mysql_fetch_object,返回存储结果集的第一行数据的对象。依次调用 mysql_fetch_object()将返回结果集中的下一行,如果没有更多行则返回 FALSE。
$sql = "select * from user";
$result = mysql_query($sql);
while($row = mysql_fetch_object($result)){
echo "<pre>";
var_dump($row);
echo "</pre>";
}
3、其他Mysql函数
(1)取得结果集中的记录数,mysql_num_rows($result),如:
$sql = "select * from user";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
echo "当前数据库user表中记录数为{$num}条<br />";
(2)取得最后一次使用insert语句产生的Id,mysql_insert_id(),如:
$sql = "insert into user (uname,upassword) values ('徐','xu')";
$result = mysql_query($sql);
echo "最后一次Insert语句产生的ID是:".mysql_insert_id()."<br />";
(3)取得前一次MYSQL操作所影响的记录行数,mysql_affected_rows(),如:
echo "前一次MYSQL操作所影响的行数为:".mysql_affected_rows()."<br />";
(4)释放资源,释放结果内存,仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放。 mysql_free_result($result),如:
mysql_free_result($result);
4、错误信息处理
由于链接数据,以及读取、操作数据库数据的不确定性,很容易因此产生错误。对于错误信息有两种解决方法,一种是错误信息控制符,忽略产生的错误信息,继续执行脚本;另一种就是当错误产生时,尽可能的输出详细的错误信息,以便于用来找到脚本产生错误的地方。用于显示MySQL函数错误信息的有两个函数:
(1)mysql_errno()函数,用来返回MySQL函数产生的错误代码。
(2)mysql_error()函数,用来返回MySQL函数的错误信息。
(3)使用实例,如:
//建立一个链接,并当链接失败时输出错误信息,并结束脚本运行
$conn = @mysql_connect("localhost","root","errorpassword") or die("产生错误的MySQL编号是:".mysql_errno().",产生错误的原因是:".mysql_error());
//选择一个数据库
mysql_select_db("errordb") or die("选择数据库失败,产生错误的MySQL编号是:".mysql_errno().",产生错误的原因是:".mysql_error());
//改变默认字符集
mysql_set_charset("utf8");
//建立一个SQL语句
$sql = "select * from users";
//运行SQL语句
$result = mysql_query($sql);
if($result == false){
echo "SQL语句运行失败,产生错误的MySQL编号是:".mysql_errno().",产生错误的原因是:".mysql_error();
}
//释放资源,关闭链接
mysql_free_result($result);
mysql_close($conn);
//使用mysql_connect连接数据库
$conn1 = mysql_connect("localhost","root","root");
if($conn1){
echo "连接成功!\n";
}else{
echo "连接失败!\n";
}
//指定连接mysql数据库时的端口
$conn2 = mysql_connect("localhost:3306","root","root");
if($conn2){
echo "连接成功!\n";
}else{
echo "连接失败!\n";
}
//使用错误控制输出符"@",控制连接失败后的信息(用于屏蔽错误信息)
$conn3 = @mysql_connect("localhost:3306","root","错误密码");
if($conn3){
echo "连接成功!\n";
}else{
echo "连接失败!\n";
}
Note:控制运算符:@,当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
//使用or die,当连接失败时,输出错误信息,并结束脚本(注意:当失败时,会结束脚本,后面的代码将不执行)
$conn4 = @mysql_connect("localhost:3306","root","root") or die("连接数据库服务器失败");
echo "使用or die时,连接失败时,此句不会执行!";
//操作完数据库后,使用mysql_close()函数关闭连接,释放资源。通常不需要使用mysql_close() ,因为已打开的非持久连接会在脚本执行完毕后自动关闭。
if($conn1) mysql_close($conn1);
if($conn2) mysql_close($conn2);
if($conn3) mysql_close($conn3);
if($conn4) mysql_close($conn4);
二、选择数据库,使用mysql_select_db(),如:
//使用mysql_select_db()选择数据库
mysql_select_db("phpstu");
//使用mysql_select_db()指定数据库时,指定与之对应的连接
mysql_select_db("phpstu",$conn) or die("数据库连接失败");
三、执行SQL语句
mysql_query函数:向指定的数据库服务器发送一条 MySQL 查询(不支持多条查询)。
1、使用mysql_query()对数据库执行增、删、改操作时,返回一个布尔类型的值。执行成功返回true,失败返回false。
$conn = @mysql_connect("localhost:3306","root","root") or die("连接数据库服务器失败");
mysql_select_db("phpstu",$conn) or die("数据库连接失败");
mysql_set_charset("utf8"); //设置当前连接的默认字符集。解决中文乱码问题。
//mysql_query("set names utf8"); //设置当前连接的默认字符集,功能同上,建议使用上一句,不推荐使用此句。
// echo mysql_client_encoding(); //返回当前字符集的名称
//增
$sql = "insert into user (uname,upassword) values('刘刘','liuliu')";
$result = mysql_query($sql);
//改
$sql = "update user set uname = '刘' where uname = '刘刘'";
$result = mysql_query($sql);
//删
$sql = "delete from user where uname = '刘刘2'";
$result = mysql_query($sql);
2、使用mysql_query()对数据库进行查询操作,查询成功返回一个resouse(包括查询到0条记录的情况),查询出错(SQL语句错误时)返回False。使用mysql_fetch_row()、mysql_fetch_assoc()、mysql_fetch_array()、mysql_fetch_object()等函数接收返回的数据。
(1)mysql_fetch_row,返回存储结果集的第一行数据的数组,该数组以数字作为键名。依次调用 mysql_fetch_row()将返回结果集中的下一行,如果没有更多行则返回 FALSE。
$sql = "select * from user";
$result = mysql_query($sql);
while($row = mysql_fetch_row($result)){
echo "<pre>";
var_dump($row);
echo "</pre>";
}
(2)mysql_fetch_assoc,返回存储结果集的第一行数据的数组,该数组以字段名作为键名。依次调用 mysql_fetch_assoc()将返回结果集中的下一行,如果没有更多行则返回 FALSE。
$sql = "select * from user";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
echo "<pre>";
var_dump($row);
echo "</pre>";
}
(3)mysql_fetch_array,返回存储结果集的第一行数据的数组。依次调用 mysql_fetch_object()将返回结果集中的下一行,如果没有更多行则返回 FALSE。
//定义:array mysql_fetch_array ( resource result [, int result_type]),
//第二个参数的值可以为:MYSQL_BOTH(3)、MYSQL_NUM(2)、MYSQL_ASSOC(1),默认为3,如:
//参数为MYSQL_NUM(2)、MYSQL_ASSOC(1)时,分别等同于mysql_fetch_assoc、mysql_fetch_row
//参数为MYSQL_BOTH(3)时,同时可以使用数字和字段做键名。
//当查询语句中字段使用了别名时,不能再用原来的字段名访问其内容。
//有一点很重要必须指出,用 mysql_fetch_array()并不明显比用mysql_fetch_row()慢,而且还提供了明显更多的值。
//此函数返回的字段名大小写敏感。
$sql = "select * from user";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
echo "<pre>";
var_dump($row);
echo "</pre>";
}
(4)mysql_fetch_object,返回存储结果集的第一行数据的对象。依次调用 mysql_fetch_object()将返回结果集中的下一行,如果没有更多行则返回 FALSE。
$sql = "select * from user";
$result = mysql_query($sql);
while($row = mysql_fetch_object($result)){
echo "<pre>";
var_dump($row);
echo "</pre>";
}
3、其他Mysql函数
(1)取得结果集中的记录数,mysql_num_rows($result),如:
$sql = "select * from user";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
echo "当前数据库user表中记录数为{$num}条<br />";
(2)取得最后一次使用insert语句产生的Id,mysql_insert_id(),如:
$sql = "insert into user (uname,upassword) values ('徐','xu')";
$result = mysql_query($sql);
echo "最后一次Insert语句产生的ID是:".mysql_insert_id()."<br />";
(3)取得前一次MYSQL操作所影响的记录行数,mysql_affected_rows(),如:
echo "前一次MYSQL操作所影响的行数为:".mysql_affected_rows()."<br />";
(4)释放资源,释放结果内存,仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放。 mysql_free_result($result),如:
mysql_free_result($result);
4、错误信息处理
由于链接数据,以及读取、操作数据库数据的不确定性,很容易因此产生错误。对于错误信息有两种解决方法,一种是错误信息控制符,忽略产生的错误信息,继续执行脚本;另一种就是当错误产生时,尽可能的输出详细的错误信息,以便于用来找到脚本产生错误的地方。用于显示MySQL函数错误信息的有两个函数:
(1)mysql_errno()函数,用来返回MySQL函数产生的错误代码。
(2)mysql_error()函数,用来返回MySQL函数的错误信息。
(3)使用实例,如:
//建立一个链接,并当链接失败时输出错误信息,并结束脚本运行
$conn = @mysql_connect("localhost","root","errorpassword") or die("产生错误的MySQL编号是:".mysql_errno().",产生错误的原因是:".mysql_error());
//选择一个数据库
mysql_select_db("errordb") or die("选择数据库失败,产生错误的MySQL编号是:".mysql_errno().",产生错误的原因是:".mysql_error());
//改变默认字符集
mysql_set_charset("utf8");
//建立一个SQL语句
$sql = "select * from users";
//运行SQL语句
$result = mysql_query($sql);
if($result == false){
echo "SQL语句运行失败,产生错误的MySQL编号是:".mysql_errno().",产生错误的原因是:".mysql_error();
}
//释放资源,关闭链接
mysql_free_result($result);
mysql_close($conn);
1292

被折叠的 条评论
为什么被折叠?



