<?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. Android--TextView第一个单词大写

    自定义TextView: public class FirstBoldTextView extends TextView { private boolean firstWordBold = false ...

  2. wireshark抓包新手教程(win10空包问题)

    首先下载官网的wireshark,下载地址https://www.wireshark.org/ 下载完按照提示一步步安装 安装完打开wireshark,安装中文包 安装之前首先讲一下win10截图工具 ...

  3. [洛谷P3227][HNOI2013]切糕

    题目大意:有一个$n\times m$的切糕,每一个位置的高度可以在$[1,k]$之间,每个高度有一个代价,要求四联通的两个格子之间高度最多相差$D$,问可行的最小代价.$n,m,k,D\leqsla ...

  4. DevExtreme学习笔记(一)treeView(搜索固定、节点展开和收缩)注意事项

    var treeConfig1 = dxConfig.treeView(obj_Question.treeDataSource1); treeConfig1.selectionMode = 'sing ...

  5. native function 'Window_sendPlatformMessage' (4 arguments) cannot be found

    https://github.com/pauldemarco/flutter_blue/issues/140 https://github.com/flutter/flutter/issues/168 ...

  6. Fortify漏洞之Portability Flaw: Locale Dependent Comparison

    继续对Fortify的漏洞进行总结,本篇主要针对 Portability Flaw: Locale Dependent Comparison 漏洞进行总结,如下: 1.Portability Flaw ...

  7. 分享linux系统more基本命令python源码

    此python源码是linux系统more基本命令的实现. 实现linux中more的基本功能,当more后加一个文件名参数时候,分屏显示按空格换页,按回车换行',在左下角显示百分比; 以处理管道参数 ...

  8. C++中头文件与源文件的作用详解

    一.C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件―― .cpp 文件和 .h 文件.其中,.cpp 文件被称作 C++ 源文件,里面放的都是 C++ 的源代码:而 .h 文件则被称作 ...

  9. QTableWidget数据表格

    void setRowHeight(int row, int height); //行高 void setVerticalHeaderLabels(const QStringList &lab ...

  10. iview 标题内边距过大; 调整iview 单元格内边距、行高;

    1css代码: /*调整table cell间隔和行高*/ .ivu-table-cell { padding-left: 1px; padding-right: 1px; } .ivu-table- ...