数据库连接步骤
我们为大家将数据库连接整理成了最重要的8个步骤,戏称它为:“数据库连接天龙八步”。
这八个步骤如下,并且将每一步使用的函数都做了说明:
第一步: 连接数据库服务器
若参数4,数据库名称在此步已填并择,不需要执行第三步。
第二步: 判断错误
第三步: 选择数据库
若在第一步已填数据库,不需要更换成其他数据库,则不需要执行第三步。
第四步: 设置字符集
第五步: 准备SQL语句
其实就是一个SQL语句的字符串。
例如:
$sql = "insert into user(username,password) values('$username','$password')";
我们通常要把变量赋值在SQL语句中使用。可是变量或者SQL语句出错了,非常不好排查。
我们根据实际工作经验增加了这一步。
如果在执行此步的时候报错了,我们可以把SQL语句打印出来,粘贴到phpMyAdmin或者相关工具中。
排错时,如果执行成功就说明不是SQL语句的问题。如果执行失败,请仔细检查SQL语句。
第六步: 发送SQL语句
SQL语句准备完成,需要通过mysqli_query将SQL语句发送给MySQL服务器。
MySQL服务器会执行发送过来的SQL语句进行执行。
第七步: 判断是否执行正常或者遍历数据
读取
第6步中,发送的是select类别的语句,通常需要将结果输出显示出来。就需要用到遍历显示数据的函数。
写入
第6步中,如果发送的是insert的语句,通常需要得到是否执行成功,或者同时拿到自增的ID。
修改和删除
第6步中,如果发送的是update和delete类别的语句。只需要判断是否执行成功即可。
我们将这些常用函数列出数据表给给大家查看。
第八步: 关闭数据库
数据库连接是一个资源类型。我们在之前的章节中讲解资源类型的时候跟大家说过。凡是涉及到数资源类型的有打开就有关闭。这样能够保证PHP更高效的处理和回收资源。
因此,数据库连接成功后,不需要使用的时候。我们可以关闭这个连接。
其他:显示服务器信息函数
注意:
mysqli只学过程化的方法即可。在面向对象阶段实际工作中完全抛弃了mysqli的对象用法,而是使用的是PDO对象连接数据库的方式。
1.为了更好地设置数据连接,一般会将数据连接所涉及的值定义成变量.
<?php $mysql_server_name='localhost'; //改成自己的mysql数据库服务器 $mysql_username='root'; //改成自己的mysql数据库用户名 $mysql_password='123456789'; //改成自己的mysql数据库密码 $mysql_database='php'; //改成自己的mysql数据库名 ?>
也可把以上变量放在一个文件里,可以随时让其他文件调用.
例如: 将以上内容放在:db_config.php 那么在其他需要用到数据库的页面直接调用.
调用代码:require("db_config.php");
2.连接数据库
<?php $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password) or die("error connecting") ; //连接数据库 mysql_query("set names 'utf8'"); //数据库输出编码 应该与你的数据库编码保持一致.南昌网站建设公司百恒网络PHP工程师建议用UTF-8 国际标准编码. mysql_select_db($mysql_database); //打开数据库 $sql ="select * from news "; //SQL语句 $result = mysql_query($sql,$conn); //查询 ?>
3.读取表中的内容,这里我们用while,可以根据具体情况,用for 或其他的.
<?php while($row = mysql_fetch_array($result)) { echo "<div style=\"height:24px; line-height:24px; font-weight:bold;\">"; //排版代码 echo $row['Topic'] . "<br/>"; echo "</div>"; //排版代码 } ?>
4.php写入数据库,Mysql数据的写入
<?php $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password); //连接数据库 mysql_query("set names 'utf8'"); //数据库输出编码 mysql_select_db($mysql_database); //打开数据库 $sql = "insert into messageboard (Topic,Content,Enabled,Date) values ('$Topic','$Content','1','2011-01-12')"; mysql_query($sql); mysql_close(); //关闭MySQL连接 ?>