<?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. mysql删除字符串的前后的空格

    update table set field = replace(replace(replace(field,char(9),''),char(10),''),char(13),'');

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

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

  3. Gym102028G Shortest Paths on Random Forests 生成函数、多项式Exp

    传送门 神仙题-- 考虑计算三个部分:1.\(n\)个点的森林的数量,这个是期望的分母:2.\(n\)个点的所有森林中存在最短路的点对的最短路径长度之和:3.\(n\)个点的所有路径中存在最短路的点对 ...

  4. 匿名对象序列化为XML

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...

  5. 让table中的td不会被过长的文字撑开,并且自动出现省略号

    <style type="text/css"> table {width:600px;table-layout:fixed;} td {white-space:nowr ...

  6. 如何在vue项目中引入element-ui

    安装 elementUI npm install element-ui --save 引入elementUI import ElementUI from 'element-ui' import 'el ...

  7. UCOSIII等待多个内核对象

    内核对象 内核对象包括信号量.互斥信号量.消息队列和事件标志组 UCOSIII中允许任务同时等待多个信号量和多个消息队列 主结构体 typedef struct os_pend_data OS_PEN ...

  8. vue-cli脚手架——3.0版本项目案例

    一.[准备工作] node与git部分见vue-cli2.0搭建案例 vue-cli3.0是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@vue/cli 全局安装的 npm ...

  9. 资源管理与调度系统-YARN资源隔离及以YARN为核心的生态系统

    资源管理与调度系统-YARN资源隔离及以YARN为核心的生态系统 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是资源隔离 资源隔离是指为不同任务提供可独立使用的计算资源以 ...

  10. ashx 文件的运用

    ASP.NET中有一种这样格式的文件ashx文件,作什么用的呢?如果你想创建一个ASP.NET文件,它不是aspx文件,它能动态的返回一个图片.XML文件或其他非HTML文件.那就使用ashx文件了. ...