PHP mysqli学习(一)数据库连接
根据慕课网学习整理 http://www.imooc.com/learn/349
mysql为面向过程方式,mysqli有面向对象和面向过程两种方式。
mysql 数据库连接:
<?php header("Content-type: text/html; charset=utf-8"); error_reporting(0); /****************************************** * mysql_connect * 作 用:建立数据库连接 * 参 数:数据库服务器地址,数据库用户名,密码 * 返回值:1、当连接成功的时候返回mysql连接标识符 * 2、当连接失败的时候返回false ********************************************/ $conn = mysql_connect("localhost:3306", "root", "root"); if ($conn) { echo "mysql连接成功"; } else { echo "mysql连接失败"; } echo "<br/>"; /****************************************** * mysql_select_db * 作 用:选择数据库 * 参 数:数据库名称,(mysql连接标识符,可选) * 返回值:1、当选择成功的时候返回true * 2、当选择失败的时候返回false ********************************************/ $db = mysql_select_db("zhy"); if ($db) { echo "选择zhy数据库成功"; } else { echo "选择zhy数据库失败"; } echo "<br/>"; /****************************************** * mysql_query * 作 用:执行一条 MySQL 查询 * 参 数:sql命令,(mysql连接标识符,可选) * 返回值:1、当执行成功的时候,目前我们知道的是,insert成功,返回true * 2、当执行失败的时候返回false ********************************************/ mysql_query('set names utf8'); //if (mysql_query('insert into user(name, age, description) values("吕布", 23, "三姓家奴")')) { // echo "插入成功"; //} else { // /****************************************** // * mysql_error // * 作 用:返回上一个 MySQL 操作产生的文本错误信息 // * 参 数:(可选 mysql连接标识符) // * 返回值:1、返回上一个 MySQL 操作产生的文本错误信息 // ********************************************/ // echo mysql_error(); // echo "插入失败"; //} echo "<br/>"; $query = mysql_query('select * from user');//当mysql_query 执行的sql是select语句的时候,如果执行成功,返回的是资源标识符 //print_r(mysql_result($query, 0)); echo "<br/>"; /****************************************** * mysql_fetch_row * 每执行一次,都从资源也就是结果集里依次取一条数据,以数组的形式返回出来,当前一次已经取到最后一条数据的时候,这一次返回空结果。 * 返回的数组是一个一维索引数组,每一个下标与数据库里字段的排序相对应。 ********************************************/ while($row = mysql_fetch_row($query)){//我们发现它返回出了查询到的资源的第一条数据 // echo $row[0].$row[1].'<br />'; var_dump($row); } /****************************************** * mysql_close * 作 用:函数关闭非持久的 MySQL 连接 * 参 数:mysql连接标识符 * 返回值:1、关闭成功true * 2、关闭失败false ********************************************/ mysql_close($con);
mysqli 数据库连接:
<?php header('content-type:text/html;charset=utf-8'); /*********************************** * 方式一 * ***********************************/ //$mysqli = new mysqli("localhost:3306", "root", "root"); //$mysqli->select_db("zhy"); //print_r($mysqli); /*********************************** * 方式二 * ***********************************/ //$mysqli = new mysqli("localhost:3306", "root", "root", "zhy"); //print_r($mysqli); /*********************************** * 方式三 * ***********************************/ //$mysqli = new mysqli(); //$mysqli->connect("localhost:3306", "root", "root", "zhy"); /******************************************** * 方式四 打印错误信息 * $mysqli->connect_errno:得到连接产生的错误编号 * $mysqli->connect_error:得到连接产生的错误信息 ********************************************/ $mysqli = @new mysqli("localhost:3306", "root", "root", "zhy"); if ($mysqli->connect_errno) { die('Connect Error:' . $mysqli->connect_error); } /*********************************** * 设置默认的客户端编码方式utf8 ***********************************/ $mysqli->set_charset("utf8"); /******************************************************************************* * 执行SQL查询 * * SELECT/DESC/DESCRIBE/SHOW/EXPLAIN执行成功返回mysqli_result对象,执行失败返回false * 对于其它SQL语句的执行,执行成功返回true,否则返回false(如create、update、insert) *******************************************************************************/ $sql = <<<EOF CREATE TABLE IF NOT EXISTS mysqli( id TINYINT UNSIGNED AUTO_INCREMENT KEY, username VARCHAR(20) NOT NULL ); EOF; $res = $mysqli->query($sql); var_dump($res); /*********************************** * 关闭数据库 ***********************************/ $mysqli->close();