边记边学PHP-(十六)PHP使用MySQL扩展库操作数据库
此图是我自己画的,可能有不准确的地方。
可以看到使用MySQL操作数据库大致经过五步:
1、连接MySQL服务器
这里使用的函数是mysql_connect()函数
2、选择数据库
这里使用的是mysql_select_db();函数
3、执行SQL语句
这里使用mysql_query()函数。所谓的SQL语句就是增删改查操作。
4、关闭结果集
这里使用mysql_free_result();函数,释放系统资源
5、断开与服务器的连接
这里使用mysql_close();函数
二、细说五步1、连接MySQL服务器
mysql_connect()函数的语法如下:
resource mysql_connect([string server[,string username[,string password[,bool new_link[,int client_flags]]]]]);
这是最完整的函数参数,但是我们在用的时候就只是用前三个参数就好了。
第一个server指的是MySQL服务器,可以使用默认的localhost。
第二个username就是在安装数据库的时候自己设定的用户名,我们默认的是root。
第三个password就是数据库的密码。
如果连接成功会返回一个MySQL连接标识,失败则返回false。
比如我连接我自己的数据库,我的服务器为localhost,用户名为root,密码为root。我可以这么测试
2、选择数据库
bool mysql_select_db(string database_name[,resource link_identifier]);
第一个参数database_name是要连接的数据库名。
第二个参数link_identifier是数据库连接标识,也就是上面连接MySQL服务器成功后返回的值。如果不写,默认为上一次打开的数据库连接。建议写。
成功返回true,失败返回false。
比如我需要连接我上次创建的那个test数据库,我可以这么写:
3、执行SQL语句
所谓SQL语句就是对数据库进行的增删改查操作。在使用命令行操作数据库的时候已经介绍了。函数语法如下:
resource mysql_query(string query[,resource link_identifier]);
第一个参数就是需要执行的sql语句。
第二个参数是mysql_connect返回的连接标识。建议写。
sql语句分为ddl【数据定义语句】 ,dml【 数据操作语句,如update,insert,delete】,dql【 select】 ,dtl【数据事务语句 rollback commit】,这里面最常用的就是dql语句,也就是查询语句。在执行dql语句成功后返回的是一个“数据指针”,在执行dml语句成功后返回的是true,失败都返回false。
比如我想查询现在我的表里有什么数据,我可以这么写。
'; }
增删改不举例了,就是把SQL语句换了。然后返回的true或false。不用再取结果集。
4、关闭结果集
mysql_free_result(resource $res);
比如上面我用完之后就可以关闭结果集了,mysql_free_result($query);
5、断开与数据库连接
mysql_close(resource $link_identifier);
比如上面程序最后我就可以断开连接了,mysql_close($conn);
三、这里给出综合案例
"; //echo "$row[0]--$row[1]--$row[2]--$row[3]--$row[4]"; //var_dump($row); //第二种取法 foreach($row as $key=>$value){ echo "$value--"; } } //6.释放资源 mysql_free_result($res); mysql_close($conn); //这句可以不写,建议写
四、细节问题
1.使用完$res结果集后,一定要释放资源
2.mysql_close()如果没有的话,系统也会自动关闭
3.如果mysql_close放在了while前面,那么不会影响结果,因为执行完mysql_query语句之后,程序已经把数据库读到内存,再次使用时是从内存读取。但是如果mysql_free_result放在前面,那么就会出错。
4.$row是个数组
5.$res如果执行的是dql语句返回的是个资源类型,但是如果执行的是dml语句就会返回bool值6.从$res获取行数据的时候,除了mysql_fetch_row($res)[返回索引数组]还有三个方法:
mysql_fetch_assoc($res) --------返回一个关联数组
mysql_fetch_array($res) ---------返回索引数组和关联数组,很耗内存,建议不要使用
mysql_fetch_object($res) ---------把一行数据当成一个对象返回
至此使用MySQL扩展库操作数据库基本完成,这是后面使用Mysqli扩展库操作数据库的基础,下一篇写Mysqli扩展库操作数据库。