legend---十、thinkphp中如何进行原生sql操作

一、总结

一句话总结:query方法和execute方法

Db类支持原生SQL查询操作,主要包括下面两个方法:

query方法

query方法用于执行SQL查询操作,如果数据非法或者查询错误则返回false,否则返回查询结果数据集(同select方法)。

使用示例:

Db::query("select * from think_user where status=1");

如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法对应的都是读操作,而不管你的SQL语句是什么。

execute方法

execute用于更新和写入数据的sql操作,如果数据非法或者查询错误则返回false ,否则返回影响的记录数。

使用示例:

Db::execute("update think_user set name='thinkphp' where status=1");

如果你当前采用了分布式数据库,并且设置了读写分离的话,execute方法始终是在写服务器执行,因此execute方法对应的都是写操作,而不管你的SQL语句是什么。

参数绑定

支持在原生查询的时候使用参数绑定,包括问号占位符或者命名占位符,例如:

Db::query("select * from think_user where id=? AND status=?",[8,1]);
// 命名绑定
Db::execute("update think_user set name=:name where status=:status",['name'=>'thinkphp','status'=>1]);

1、amazeui如何控制控件框的大小?

class=" am-input-sm"
     <select class=" am-input-sm">
<option value="">添加了 .am-input-sm</option>
</select>

2、a标签如何带额外参数(或者改变原a标签的参数)?

动态改变href属性即可

$("#n").click(function(){
$(this).attr("href","a.jsp?name="+name+"&id="+id+"&age="+age);
}

样例:选择框变化后,改变a标签的type参数的值

 <script>
$(function () {
$('#battleground_diff').change(function () {
$('a.battleground_item_a').each(function () {
let perHref=$(this).attr("href");
let reg=/\/type\/\d+/gi;
let needStr='/type/'+$('#battleground_diff').val();
let ansHref=perHref.replace(reg,needStr);
$(this).attr("href",ansHref);
//console.log(perHref);
//console.log(ansHref);
});
});
});
</script>

3、php如何从数组中任意取一个元素?

array_rand — 从数组中随机取出一个或多个单元

mixed array_rand ( array $array [, int $num = 1 ] )

从数组中取出一个或多个随机的单元,并返回随机条目的一个或多个键。 它使用了伪随机数产生算法,所以不适合密码学场景,

 <?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

4、js如何向一个数组中添加元素?

  • 数组的创建
  1. var arrayObj = new Array(); //创建一个数组
  2. var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
  3. var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值

要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。

  • 数组元素的添加
  1. arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度

5、thinkphp中如何清空数据表?

Db::query("truncate lg_goods");
 //清空物品
public function truncateGoods(){
$ans=Db::query("truncate lg_goods");
if($ans!==false){
$this->success('清空物品成功!!',url('goods/index'));
}else{
$this->error('清空物品失败!!');
}
}

6、战斗页面有必要在战斗开始之前就把战斗胜利获得的物品数据传递过来么?

没有必要

正确的逻辑应该是这样:

战斗胜利,调用ajax(后台给用户发放奖励),ajax的回调函数里面传回来数据(给用户发放的奖励数据),在回调函数里面调用弹出层(显示奖励结果),

而不是在弹出层里面调用回调函数,

7、相关推荐功能(真的是帅)?

jquery的ajax的load方法,可以加载页面,也可以加载页面的局部

而且直接是ajax操作

完美

 <!--获取相关推荐-->
<div>
<h1>相关推荐</h1>
<div id="fry_recommend" style="padding-bottom: 40px;"> </div>
</div> <script>
$(function () {
function addRecommend(){
setTimeout(function () {
$('#EntryTag>a').each(function () {
var needUrl=$(this).attr('href');
console.log(needUrl);
$("#fry_recommend").load(needUrl+" #myposts");
});
},5000);
}
addRecommend();
});
</script>

8、js中setInterval的第一个参数是函数还是函数代码段?

是代码段,而不是函数,函数就达不到效果了

setInterval(addRecommend,1000);
 <!--获取相关推荐-->
<script>
$(function () {
function addRecommend(){
$('#EntryTag>a').each(function () {
var needUrl=$(this).attr('href');
console.log(needUrl);
$("#fry_recommend").load(needUrl+" #myposts");
if(needUrl) clearInterval(fry_t);
});
}
var fry_t=setInterval(addRecommend,1000);
});
</script>

9、如何清除setInterval?

clearInterval方法,里面的参数是setInterval的返回值

var fry_t=setInterval(addRecommend,1000);
if(needUrl) clearInterval(fry_t);

10、php中的strpos和stripos的区别是什么?

都是查找字符串首次出现的位置,

只不过stripos() 不区分大小写。

二、内容在总结中

 

legend---十、thinkphp中如何进行原生sql操作的更多相关文章

  1. [转]ThinkPHP中如何使用原生SQL

    From : http://huangqiqing123.iteye.com/blog/1540323 TP的模型可以支持原生SQL操作,提供了query和execute两个方法,为什么原生SQL还要 ...

  2. thinkphp中常用到的sql操作

    1.清空某表数据: $sql = 'truncate table table_name'; Db::execute($sql );

  3. Golang原生sql操作Mysql数据库增删改查

    Golang要操作mysql数据库,首先需要在当期系统配置GOPATH,因为需要使用go get命令把驱动包下载到GOPATH下使用. 首先配置好你的GOPATH,执行以下命令,下载安装mysql驱动 ...

  4. thinkPHP框架中执行原生SQL语句的方法

    这篇文章主要介绍了thinkPHP框架中执行原生SQL语句的方法,结合实例形式分析了thinkPHP中执行原生SQL语句的相关操作技巧,并简单分析了query与execute方法的使用区别,需要的朋友 ...

  5. THINKphp中复杂的查询

    字符串拼接查询 案例一:拼接字符串(多条件查询) $where = ''; //定义字符串,用于拼接满足条件的数据字段 $value = []; // 定义空数组,用于接收值 if(!empty($n ...

  6. thinkphp中的内置操作数据库与mysql中的函数汇总

    8.4.4 Model类getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,vars=array()) ...

  7. Django之ORM执行原生sql语句

    django中的ORM提供的操作功能有限,在模型提供的查询API不能满足实际工作需要时,可以在ORM中直接执行原生sql语句. Django 提供两种方法使用原生SQL进行查询:一种是使用raw()方 ...

  8. Django框架08 /聚合查询、分组、F/Q查询、原生sql相关

    Django框架08 /聚合查询.分组.F/Q查询.原生sql相关 目录 Django框架08 /聚合查询.分组.F/Q查询.原生sql相关 1. 聚合查询 2. 分组 3. F查询和Q查询 4. o ...

  9. Mybatis中的update动态SQL语句

    Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="ent ...

随机推荐

  1. Ubuntu桌面基础介绍

    1. 目录结构和文件系统 ubuntu的文件系统也是一个又层次的树形结构,文件系统的最上层是 / ,表示根目录,所有其他文件和目录都位于跟目录下,在linux中,一切皆为文件,包括硬盘.分区和拔插介质 ...

  2. 26.QT颜色与布局

    dialog.h #ifndef PALETTE_H #define PALETTE_H #include <QDialog> #include <QComboBox> #in ...

  3. category的概念

    category 的意思应该是为基类添加一个子类的声明方法 可以在创建基类对象的时候访问到子类的对象方法 category 可以说是 类的扩展 也可以说是 将类分成了几个模块 需要注意的是 在cate ...

  4. 通过配置host,自定义域名让本地访问

    最近服务器这块一直由我来维护,我们开发的项目很多域名根本没有解析,而是仅仅配置了host,就可以本地访问服务器了.感觉很有意思,于是乎,打算试一试.结果弄了许久,最后第二天才解决了.把这个艰辛的旅程记 ...

  5. SQL Server数据库性能优化

      开篇:    最近遇到了很多性能问题,一直没来的及总结,今天正好周末抽时间总结下: 对于稍微大点的公司或者说用户多一些的公司,说白了就是数据量较大的公司,在查询数据时往往会遇到很多瓶颈.这时就需要 ...

  6. rel= "noopener"

    rel= "noopener" <a href= "https://www.xiaogezi.cn/" target= "_blank" ...

  7. c#制作简单启动画面的方法

    本文实例讲述了c#制作简单启动画面的方法.分享给大家供大家参考.具体分析如下: 启动画面是程序启动加载组件时一个让用户稍微耐心等待的提示框.一个好的软件在有启动等待需求时必定做一个启动画面.启动画面可 ...

  8. UNP学习笔记3——基本UDP套接字编程

    1 概述 TCP和UDP网络编程存在一些本质的差异,主要是由于传输层的差别:UDP是无连接的不可靠的数据报协议,而TCP是面向连接的字节流协议. 下图是典型的UDP客户端和服务器之间的通信流程.客户不 ...

  9. 解决PL/SQL管理工具database下拉为空和登录出现ORA-12154

    前言:昨天捣鼓了一下午,终于可以用plsql连接上oracle了... 测试环境:win10 注意问题: (一).环境变量 我发现按网上别人说的那一大推环境配置,很容易出错,我把它们全删了,就留了两个 ...

  10. JAVA导出csv出现0.00E+00

    导出csv出现 0.00E+00的问题,打印其值为0E-8:这是因为数据表中无对应数据(decimal),查询结果则为 0e-8. 出现的字段是多个字段相加产生的和,所以这里调用了一个相加的方法.在相 ...