php的MySQL使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php的MySQL使用相关的知识,希望对你有一定的参考价值。
在php5以上的版本中可以使用mysql和mysqli两套扩展函数,mysqli是PHP5中新加的,是对mysql扩展的改进。很多老项目是在PHP4使用mysql扩展开发的,如果对这些老项目进行二次开发,就需要会使用mysql扩展函数。如果是新的设计的项目,则推荐使用mysqli或者PDO技术。
如果要用MySQL扩展,在Linux服务器中在编译时加上—with-mysql选项,如果是windows服务站,则需要启用一个DLL文件提供相应的扩展。
数据库连接函数
mysql_connect(server,user,pwd,newlink,clientflag)
通常只提供三个参数,即mysql服务器的主机名,MySQL用户名和密码。
mysql_close(link_identifier)
脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysql_close() 关闭了。
选择已经创建的数据库
mysql_select_db(database,connection)
database 数据库名称,connection 可选,mysql连接资源,如果不填则使用上一个连接
执行SQL命令
mysql_query(query,connection)
query 表示需要执行SQL命令,connection可选,mysql连接资源,如果不填则使用上一个连接
如果该函数执行成功则返回一个非0的值。如果没有执行成功,该函数将返回FALSE(0)。当出错是可以通过mysql_error()和mysql_errno()函数来查看错误原因。
如果执行完insert update 和delete等DML命令之后,可以调用mysql_affected_rows()函数查看它们到底修改了多少条数据记录。执行INSERT命令之后,还可以调用mysql_insert_id()函数查看插入的最后一条新记录AUTO_INCREMENT值是多少。
//连接数据库
$db =mysql_connect(‘localhost‘,‘root‘,‘root‘);
if( !$db ){
die( ‘数据库连接失败:‘.mysql_error() );
}
//选择数据库
mysql_select_db(‘test‘,$db) or die( ‘选择数据库失败:‘.mysql_error() );
$sql_insert= "insertinto user(username,age,sex,email) values ".
" (‘李连杰‘,45,‘男‘,‘[email protected]‘), ".
" (‘张曼玉‘,35,‘女‘,‘[email protected]‘), ".
" (‘林青霞‘,25,‘女‘,‘[email protected]‘) ";
//执行sql语句
$result= mysql_query($sql_insert);
if( $result&& mysql_affected_rows() > 0 ){
echo ‘总共插入了‘.mysql_affected_rows().‘条记录,最后一条的userid是‘.mysql_insert_id().‘</br>‘;
}else{
echo ‘插入数据失败:‘.mysql_error();
}
$sql_update= " updateuser set username=‘王五‘ , age =12 where userid=11 ";
$result= mysql_query($sql_update);
if( $result&& mysql_affected_rows() ){
echo ‘修改记录成功,总共修改了‘.mysql_affected_rows().‘条记录</br>‘;
}else{
echo ‘修改记录失败‘.mysql_error();
}
$sql_delete= "deletefrom user where userid=10";
$result= mysql_query($sql_delete);
if( $result&& mysql_affected_rows() ){
echo ‘删除记录成功,总共删除了‘.mysql_affected_rows().‘条记录</br>‘;
}else{
echo ‘删除记录失败‘.mysql_error();
}
//关闭数据库连接
mysql_close($db);
select查询结果集的处理
执行SELECT命令之后,mysql_query()函数的返回值是一个PHP资源的引用指针(结果集)。这个返回值可以用在各种结果集处理函数中,对结果数据表的各个字段进行处理。
$result = mysql_query(“select * from users”); //执行select语句返回结果集$result $rows = mysql_num_rows($result); //从结果集中获取数据记录行的个数 $cols = mysql_num_fields($result); //从结果集中获取数据记录列的个数 $col = mysql_fetch_fields($result); //取得具体的字段信息 |
通过下面四个函数可以对结果数据集中的数据进行访问。每次调用将自动返回下一条结果记录,如果达到结果集数据表的末尾,则返回false。如果想改变这个顺序,就必须用mysql_data_seek()函数明确地改变当前结果记录。
mysql_fetch_row():该函数将一条结果记录返回并已一个普通的索引数组的形式保存。
mysql_fetch_assoc():该函数将一条结果记录返回并以一个普通的关联数组的形式保存。
mysql_fetch_array():该函数可以将结果数据表中的每一行获取为一个关联数组或索引数组,或者同时获取为关联数组和索引数组。可以通过参数MYSQL_ASSOC、MYSQL_NUM或者MYSQL_BOTH中的一个常量返回不同的数组形态,默认使用MYSQL_BOTH常量将两种数组一起返回。
mysql_fetch_object():该函数以一个对象的形式返回一条结果记录,它的各个字段需要以对象的形式进行访问。
//连接数据库
$db =mysql_connect(‘localhost‘,‘root‘,‘root‘);
if( !$db ){
die( ‘数据库连接失败:‘.mysql_error() );
}
//选择数据库
mysql_select_db(‘test‘,$db) or die( ‘选择数据库失败:‘.mysql_error() );
$sql ="select* from user";
$result= mysql_query($sql);
echo ‘行数:‘.$rows = mysql_num_rows($result).‘</br>‘;
echo ‘列数:‘.mysql_num_fields($result).‘</br>‘;
echo "<tableborder=‘1‘><tr><td>userid</td><td>用户名</td><td>年龄</td><td>性别</td><td>邮箱</td></tr>";
while ( $row= mysql_fetch_assoc($result) ){
echo "<tr><td>".$row[‘userid‘]."</td><td>".$row[‘username‘]."</td><td>".$row[‘age‘]."</td><td>".$row[‘sex‘]."</td><td>".$row[‘email‘]."</td></tr>";
}
echo "</table>";
mysql_free_result($result);//释放查询的结果集资源
//关闭数据库连接
mysql_close($db);
本文出自 “j2ee” 博客,请务必保留此出处http://yongxi.blog.51cto.com/2352775/1977417
以上是关于php的MySQL使用的主要内容,如果未能解决你的问题,请参考以下文章
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段
关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段
修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段