本节课我们了解下mysqli扩展及几个sql。...扩展 class mysqli{ } //数据库连接 $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); /.../数据库连接错误号码 $mysqli->connect_errno //数据库连接错误内容 $mysqli->connect_error //设置编码 $mysqli->set_charset("utf8mb4...")) //执行sql语句 $result=$mysqli->query($sql); //设置结果类型 返回一行的数据 //MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH...$list[]=$rs; } //执行sql错误内容 $mysqli->error //关闭连接 $mysqli->close(); //结果记录数 $result->num_rows //关闭结果
现在如果想要使用过程式的代码来操作数据库,只能使用 mysqli 扩展了。当然,mysqli 扩展也是支持面向对象式的写法的。...如果你还在 PHP5 的环境中学习 MySQL(原始)扩展的使用的话,也可以放下了。 而对于 PDO 和 MySQLi 的选择来说,就仁者见仁智者见智了。...当然,小众并不意味着不好,就像日常开发中,我们很少会在 PHP 环境中使用别的数据库,那么在自己的小项目中完全使用一套 MySQLi 来操作数据库反而更加地方便快捷。...而 PHP7.2.4 之前的版本中的 MySQLi 会使用 mysql_native_password 来对连接密码进行加密,这样就会导致无法连接上数据库。...在接下来的文章中,我们将默认只使用 面向对象 式的写法来继续学习 MySQLi 扩展相关的知识。
php //1、建立到mysql的连接 //mysqli('主机名','数据库用户名','数据库密码','连接的数据库的名字') $mysqli=new mysqli('localhost',...'root','root','test'); if($mysqli->connect_errno){ die('Connect Error:'....$mysqli->connect_error); } //2.设置默认的字符集:utf8 $mysqli->set_charset('utf8'); //3.执行SQL语句 $sql='...php //过程化风格 //1、建立数据库连接 $link=mysqli_connect('localhost','root','root','test') ; if(mysqli_connect_errno...()){ die('Connection Error:'.mysqli_connect_errno()); } //2、设置字符集 mysqli_set_charset($link,'utf8
现在如果想要使用过程式的代码来操作数据库,只能使用 mysqli 扩展了。当然,mysqli 扩展也是支持面向对象式的写法的。...如果你还在 PHP5 的环境中学习 MySQL(原始)扩展的使用的话,也可以放下了。 而对于 PDO 和 MySQLi 的选择来说,就仁者见仁智者见智了。...当然,小众并不意味着不好,就像日常开发中,我们很少会在 PHP 环境中使用别的数据库,那么在自己的小项目中完全使用一套 MySQLi 来操作数据库反而更加地方便快捷。...mysqli_query() 函数来执行语句,接着又使用面向对象的方式来获取结果集。...在接下来的文章中,我们将默认只使用 面向对象 式的写法来继续学习 MySQLi 扩展相关的知识。
使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据。...以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 在 SQL 查询语句中的字符串值必须加引号 数值的值不需要引号 NULL 值不需要引号 INSERT INTO 语句通常用于向 MySQL...> 实例 (MySQLi - 面向过程) " . mysqli_error($conn); } mysqli_close($conn); ?> 实例 (PDO) <?...INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')"; // 使用
本文实例讲述了thinkPHP框架乐观锁和悲观锁。...$this- mysqli- query("INSERT INTO log(good_id) VALUES({$num})"); $affected_rows = $this- mysqli-...$num; }else{ $this- mysqli- rollback(); echo "fail1:"...._study/359349 更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter...希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
// 创建数据库连接 $connect = mysqli_connect('127.0.0.1', 'root', 'root', 'test', 8889); // 判读是否连接成功了 if (!...$connect) { echo '数据库连接失败'; // 打印连接失败的原因 var_dump(mysqli_connect_error($connect)); exit()...; } // 设置字符集 mysqli_set_charset($connect, 'utf8'); // 组装sql语句 $sql = "SHOW TABLES"; // 执行sql语句 $res =...mysqli_query($connect, $sql); // 获取结果 $res_array = mysqli_fetch_all($res); var_dump($res_array); mysqli_close...1 => array (size=1) 0 => string 'person' (length=6) 面向对象方式 // 创建数据库连接对象 $connect = new mysqli
$mysqli = new Mysqli($host, $user, $pass); for ($i=0; $i<count($_POST['user_info']); $i++) { $info...使用mysqli批处理技术,bind_param() <?...php $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world'); /* check connection */ if...\n", $mysqli->affected_rows); /* close connection */ $mysqli->close(); ?...使用了占位符(“?”)
在实例化过程中,我们并没有给 mysqli 的构造函数传递任何的参数,而是使用 real_connect() 方法来传递数据库服务器信息并建立连接。...相信不少朋友从代码中就可以看出,我们使用 real_connect() 可以在一个 mysqli 实例下来切换不同的数据库连接。...通过打印 mysqli 对象的内容就可以看出,两个连接的线程ID不同,也就是说,它们是不同的两个连接,但是使用的都是最上面所初始化的那个 mysqli 对象。...但是在 MySQLi 中,我们统一只使用 query() 方法就可以了。...我们如果需要获取受影响的行数需要使用 MySQLi 的属性 affected_rows 。对于插入语句来说,获取最新插入的数据ID使用的是 insert_id 属性。
所以在这里,我们就不再多讲理论方面的东西了,直接上代码来看看 MySQLi 中这两大特性与 PDO 在使用上的区别。 事务处理 首先,我们还是要让 MySQLi 对于错误的语句也报出异常来。...// 使用异常处理错误情况 $driver = new mysqli_driver(); $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT...; 这样就指定了在使用 MySQLi 扩展时,所有的错误信息都会作为异常抛出。...预处理语句 总体来说,事务的处理和 PDO 的区别不大,但是预处理语句和 PDO 中的使用的区别就有一些了。首先是我们的 MySQLi 中的占位符只有 ? 问号占位。...对于我们来说,还是多以学习了解为主,在自己封装或者使用某些以 MySQLi 为底层数据库操作的框架时不至于晕头转向。
对于我们的业务开发来说其实用处不大,除了 num_rows 可以用来根据行数判断查询是否有结果之外,更重要的是我们要获取到结果集中的数据信息,这时就需要使用其它的函数来进行数据的获取了。...当我们获取或者使用后面要介绍的方法循环遍历完成一次结果集之后,再次遍历的话它的游标已经处于最后一位的,这样是无法获取数据的。...获取普通结果集 如果要一行一行数据的获取,我们就可以使用各种形式的结果集数据获取方式。...另外还有一个 fetch_assoc() 方法,直接就是返回 MYSQLI_ASSOC 格式的数据,这个方法不需要任何参数,它可以看成是 fetch_array(MYSQLI_ASSOC) 这种使用方式的一个封装...在实际的业务开发中 PDO 还是会使用得更多,但 MySQLi 也绝不是能够完全忽略的,多多动手尝试学习吧。
中绑定参数只能使用 ?...问号占位符,然后在使用 bind_param() 时,使用的是 's' 这种来按顺序绑定参数,这个 's' 代表的就是字符串。...最后,我们使用 close() 关闭一个当前的 STMT 对象。这样在后面的操作中上面的 $stmt 对象就无法使用了。...当使用 fetch() 进行查询结果对象的遍历时,就像使用引用的方式为这 4 个列变量赋值。...而真正获得结果集的数据其实是通过另一个方法来获得一个 MySQLI_result 对象,然后再使用这个对象里面的方法就可以像 PDO 的 fetch() 一样来获得真正的结果集了。
PHP开发中,使用Mysql扩展来链接Mysql数据库进行增删改查等操作。 在选择Mysql扩展的时候,官方提供了两种: MySQL 原始版。...作为替代,可以使用 mysqli 或者 PDO_MySQL 扩展代替。 MySQL 增强版。 mysqli扩展允许我们访问MySQL 4.1及以上版本提供的功能。...特性比较 特性 mysqli mysql PHP版本 >=5.0 >3.0 MySQL开发状态 活跃 仅维护 MySQL建议使用 首选 建议 API的字符集支持 是 否 存储过程支持情况 是 否 多语句执行支持情况...MySQLi 多次运行将使用同一连接进程,减少了服务器的开销。 链接方式 <?...建议 PHP版本为5.x建议使用 mysqli 扩展。 PHP版本为7 只能使用 mysqli 扩展。 Thanks ~
ThinkPHP6.0的前身是ThinkPHP5.2,因为6.0版本改动比较大,所以直接将原定的5.2改成6.0。 目前ThinkPHP6还没正式发布,还是Rc阶段,更新也比较频繁。...安装 从ThinkPHP5.1起,需要通过composer安装,不再提供安装包。 目前ThinkPHP6还没正式发布,还是Rc阶段,所以需要加上-dev选项。...应用的运行时目录 └─vendor 第三方类库目录(Composer) └─topthink ├─framework ThinkPHP...框架系统 ├─think-installer ThinkPHP安装器 ├─think-template 模板引擎扩展 └─think-view...如果需要继续使用这些视图方法,需要改为继承think\ViewController类,或者使用助手函数或自己封装。 方法 方法对于我来说,也是没有什么变化和影响的,唯一的影响就是视图和模板的变动了。
首先,运行swoole服务端程序要在命令行模式下运行php文件,所以thinkphp要设置成命令行模式运行,在入口文件中增加一个配置即可: define(‘MODE_NAME’,‘cli’); 然后运行...如图: 图片 THINKPHP中使用swoole 其他的使用方法就和普通php程序一样了。
PHP数据库操作中,mysqli相对于mysql有很大的优势,建议大家使用;之前我们有介绍过如何在PHP5中使用mysqli的prepare操作数据库,使用mysqli更是支持多查询特性,请看下面这段php...php $mysqli = new mysqli("localhost","root","","123456"); $mysqli- query("set names 'utf8'"); //多条sql...($sql)){//使用multi_query()执行一条或多条sql语句 do{ if ($rs = $mysqli- store_result()){//store_result()方法获取第一条...()方法获取下一结果集,返回bool值 } $mysqli- close(); //关闭数据库连接 ?...通过上面的例子,相信大家都可以很容易地明白了,在使用的时候要特别注意的是multi_query()执行多条语句时,语句之间是用 ; 隔开的,否则会出现错误。
/ThinkPHP/ThinkPHP.php'; 要用完整的文件路径才可以引入
thinkPHP中U方法的定义规则如下(方括号内参数根据实际应用决定): U('[项目://][路由@][分组名-模块/]操作?...id=1') // 生成Blog模块的read操作并且id为1的URL地址 U('Admin-User/select') // 生成Admin分组的User模块的select操作的URL地址 参数请确保使用
领取专属 10元无门槛券
手把手带您无忧上云