<?php

class MysqlController extends ControllerBase
{
public $config = array();
public $mysql = NULL; public function initialize(){
$this->config = array(
'host'=>'localhost:3306',
'username'=>'daokrdb',
'password'=>'123456',
'dbname'=>'daokrdb',
);
}
public function indexAction()
{
// 创建连接
$mysql = new mysqli($this->config['host'], $this->config['username'], $this->config['password'], $this->config['dbname']);
/* change db to world db */
//$mysqli->select_db("world"); //可以利用select_db 改变数据库
// Check connection
if ($mysql->connect_error) {
die("连接失败: " . $mysql->connect_error);
}else{
$thread_id = $mysql->thread_id;
echo "mysql 的主机信息:".$mysql->host_info."<br/>";
echo "mysql 查看服务器信息:".$mysql->server_info."<br/>";
echo "mysql 获取最近一次数据库查询的信息:".$mysql->info."<br/>";
echo "mysql 获取当前系统状态:".$mysql->stat()."<br/>";
echo "mysql 是否线程安全:".$mysql->thread_safe()."<br>";
echo "mysql 返回当前连接的线程ID:".$thread_id."<br>";
$this->mysql = $mysql;
}
/* 设置客户端字符集 */
if (!$mysql->set_charset("utf8")) {
echo("设置utf8错误: ".$mysql->error."<br>");
} else {
echo("当前已设置的字符集:".$mysql->character_set_name()."<br>");
} /* kill 当前连接线程 */
//$mysql->kill($thread_id);
$this->insert();
$this->select();
$this->find();
$this->delete();
$this->update(); $mysql->close();
}
function select(){
$sql = "SELECT t.* FROM t_users t";
$result = $this->mysql->query($sql);
if($result->num_rows>0){
while ($row = $result->fetch_assoc())
{
echo "编号:".$row['id']." 标题:".$row['title']."<br>";
}
$result->close();
}
}
//增
function insert(){
$sql = "INSERT INTO t_users (title, author,submission_date) VALUES ('John', 'Doe', NOW())"; if ($this->mysql->query($sql) === TRUE) {
echo "新记录插入成功<br/>";
} else {
echo "Error: " . $sql . "<br>" . $this->mysql->error;
}
$name = "学习 PHP";
$query = "SELECT title FROM t_users WHERE title=?";
$binduser = $this->mysql->prepare($query);
if($binduser){
$binduser->bind_param('s', $name);//i - integer(整型)d - double(双精度浮点型)s - string(字符串)b - BLOB(binary large object:二进制大对象)
$binduser->execute();
$binduser->bind_result($title);
$binduser->fetch();
echo "bind_result 查询成功:".$title."<br/>";
$binduser->close();
}
}
//删
function delete(){
$sql = 'delete from t_users where title="d" ';
$result = $this->mysql->query($sql);
if($result){
echo "删除成功<br>";
}else{
echo "Error: " . $sql . "<br>" . $this->mysql->error;
}
}
//改
function update(){
$sql = 'update t_users set title="PHP webs" where id=31';
$result = $this->mysql->query($sql);
if($result){
echo "更新成功<br>";
}else{
echo "Error: " . $sql . "<br>" . $this->mysql->error;
}
} }

mysqli的方法测试小结的更多相关文章

  1. 基于USB3.0的双目相机测试小结之CC1605配合CS5642 双目 500w摄像头

    基于USB3.0的双目相机测试小结之CC1605配合CS5642  双目 500w摄像头 CC1605双目相机评估板可以配合使用柴草电子绝大多数摄像头应用 如:OV5640.OV5642.MT9P03 ...

  2. iSensor APP 之 摄像头调试 MT9D001 MT9P031 测试小结 200万像素和500万像素摄像头

    iSensor APP 之 摄像头调试  MT9D001 MT9P031 测试小结 iSensor app 非常适合调试各种摄像头,已测试通过的sensor有: l  OV7670.OV7725.OV ...

  3. 七中滤波方法测试matlab实现

    http://blog.163.com/xiaheng0804@126/blog/static/1205282120132129471816/ 创建两个混合信号,便于更好测试滤波器效果.同时用七中滤波 ...

  4. JavaScript回调函数及数组方法测试

    JavaScript回调函数及数组方法测试 具体代码如下: <!DOCTYPE html> <html lang="en"> <head> &l ...

  5. web测试小结

    今年5月份开始接触web测试,经过大半年的测试及学习,简单总结下 测试过程: 1.需求理解 2.测试策略.方案.用例编写及评审 3.测试环境搭建 4.测试执行 5.bug提单.问题跟踪 6.回归测试 ...

  6. 【转】Unity3D Transform中有关旋转的属性和方法测试

    Transform有关旋转个属性和方法测试 一,属性 1,var eulerAngles : Vector3 public float yRotation = 5.0F; void Update()  ...

  7. .NET 前台调用后台事件和方法实现小结

    转自:https://www.cnblogs.com/kinger906/p/3431842.html 除了下文讲的方式外,还有一种方式:html里面使用ajax写好提交方式和提交参数,然后以写一行带 ...

  8. mybatis-使用junit测试与main方法测试结果不一致问题

    今天使用ieda写mybatis程序感觉太不友好了,而且也没找到问题所在.问题:写的user.xml中的语句与输出的语句不一样.尝试了各种办法都没有解决. mybatis配置的使用的查询实体.xml ...

  9. ES5新增数组方法测试和字符串常见API测试

    首先是ES5新增数组方法测试: <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

随机推荐

  1. HDU6037 Expectation Division 期望、高维前缀和

    传送门 设\(f_x\)表示答案,那么\(f_x = \frac{\sum\limits_{d \mid x} f_d}{\sigma_0(x)} + 1 = \frac{\sigma_0(x) + ...

  2. 深度学习Tensorflow相关书籍推荐和PDF下载

    深度学习Tensorflow相关书籍推荐和PDF下载 baihualinxin关注 32018.03.28 10:46:16字数 481阅读 22,673 1.机器学习入门经典<统计学习方法&g ...

  3. Ubuntu 18.04 Server 配置静态ip

    刚在虚拟机里面状态了一个 Ubunut 18.04 Server 作为我的服务器,我习惯使用静态ip首先再virtualbox中设置虚拟机网络的连接方式为桥接模式进入ubuntu虚拟机根据我的印象直接 ...

  4. .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态

    原文:.NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 在 Windows 系统中,一段时间不操作键盘和鼠标,屏幕便会关闭,系统会进入睡眠状态.但有些程序(比如游戏.视频和演示文稿)在运行过程中应该 ...

  5. 【面试突击】- SpringMVC那些事(一)

    1.什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一个模块,无需中间整合 ...

  6. Twitter分布式自增ID算法snowflake原理解析(Long类型)

    Twitter分布式自增ID算法snowflake,生成的是Long类型的id,一个Long类型占8个字节,每个字节占8比特,也就是说一个Long类型占64个比特(0和1). 那么一个Long类型的6 ...

  7. PHP基础之输出缓冲区基本概念、原理分析

    一.概念 在PHP运行的过程中,可以将会产生输出的函数或操作结果暂时保存在PHP的缓冲区,只有当缓冲区满了.或者PHP运行完毕.或者在必要时候进行输出,才会将数据输出到浏览器,此缓冲数据的区域称为PH ...

  8. [转].net mvc + vuejs 的项目结构

    .net项目结构: 程序目录结构: vue操作: 前提:安装npm ,vue,vue-cli 1.进入控制台窗口 2.进入程序目录 3.运行 vue init webpack webjs 生成webj ...

  9. 更新yum源并重建缓存

    原文连接 1)下载wget yum install -y wget 2)备份默认的yum mv /etc/yum.repos.d /etc/yum.repos.d.backup 3)设置新的yum目录 ...

  10. 使用protobuf (proto3, C++和go语言)

    在这里,我先讲述C++使用protobuf,之后,会补充使用go语言使用protobuf. 使用protobuf需要有如下步骤: 在.proto文件中定义消息(message)格式. 使用protob ...