实例
<?php /** 连接数据库对象mysqli */ //将new,mysqli来连接数据库,将数据库用的几个参数,设置成变量,为了案例起,可以将设置的数据库连接变量参数,放到一个专门的文件中,然后利用require将文件引用进来。 error_reporting(E_ALL ^E_WARNING); //数据库地址 $db_host = '127.0.0.1'; //数据库用户名 $db_user = 'root'; //数据库密码 $db_pass = 'root'; //设置连接的数据库 $db_name = 'php'; //设置数据库连接字符集编码 $db_charset = 'utf8'; //new数据库mysqli实例化 $mysqli = new mysqli($db_host,$db_user,$db_pass); //判断数据库是否连接成功,如果不成功返回错误编码 if ($mysqli->connect_errno) { die('连接错误'.$mysqli->connect_errno.': '. $mysqli->connect_error); }else { echo 'true'; } //如果上面没有写选择库,这里可以利用$mysqli->select_db()来选择数据库 $mysqli->select_db($db_name); //设置数据库字符编码 $mysqli->set_charset($db_charset); //因为是实用的数据库对象,所以最后可以不设置关闭数据库
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:上面为面向对象连接数据库的操作。可以从中学习到关于面向对象的操作。首先要利用面向对象来操作数据库首先要new mysqli来调用方法。当中有$mysqli->errno和$mysqli->error这是两个返回数据库连接错误的信息。我对这两个方法不是很懂,两个到底有什么具体的区别呢。$mysqli->set_charset来设置数据库字符集编码。$mysqli->select_db来选择数据库。如果最上面利用了构造方法选择了数据库,就可以不使用$mysqli->select_db。
实例
<?php //查询语句,在使用查询语句的时候,先要将数据库里面填入数据。利用INSERT来做准备好要插入数据库里面的信息。 //在查询语句中的?为点位符 $sql = "INSERT INTO `user` (`name`, `password`, `email`, `age`) VALUES (?, sha1(?), ?, ?);"; $stmt = $mysqli->prepare($sql); //创建SQL预处理对象,将数据处理后附给变量$stmt $name = '杨过1'; $password = '123456'; $email = 'yangguo@php.cn'; $age = 30; $stmt->bind_param('ssss',$name,$password,$email,$age);//将占位符跟变量相绑定 if ($stmt->execute()) {//执行sql语句 if ($stmt->affected_rows > 0) {//判断是否执行成功,如果执行成功,说明有数据插入进去 echo '插入数据'.$stmt->affected_rows.'条';//利用affected_rows获取插入的记录数 }else { echo '未插入数据'; } } $stmt->close();//关闭连接 $mysqli->close();
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:里面有几个必要的参数要注意一下,第一个就是必须要把准备的SQL语句,没有问题。把准备的sql语句利用数据库对象进行处理,然后附给变量$stmt空上变量,然后再进行处理。
实例
<meta http-equiv='content-type' content='text/html; charset=utf-8'/> <?php /** * 数据库查询 */ $pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root'); $sql = "SELECT `name`,`email` FROM `user` WHERE `id` >:id"; $stmt = $pdo->prepare($sql); $stmt->execute(['id'=>0]); $stmt->bindColumn('name',$name); $stmt->bindColumn('email',$email); while ($stmt->fetch(PDO::FETCH_BOUND)) { echo '姓名:'.$name.' 邮箱'.$email.'<br>'; }
运行实例 »
点击 "运行实例" 按钮查看在线实例
bindColumn(字段,绑定的变量)这样来使用,就可以把数据库里面的name绑定到变量$name上面,然后再来遍历数据的时候,就方便多了。fetch是每是次只输出一条数据,所以要利用遍历来将所有数据遍历出来。