博主信息
PHP学习
博文
60
粉丝
1
评论
1
访问量
37367
积分:0
P豆:122

MySQLi面向对象连接数据库与查询数据库信息_2018年8月30日

2018年09月11日 21:21:55阅读数:400博客 / PHP学习/ PHP

实例

<?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是每是次只输出一条数据,所以要利用遍历来将所有数据遍历出来。

批改状态:合格

老师批语:

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论