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. bzoj1588: [HNOI2002]营业额统计(splay)

    1588: [HNOI2002]营业额统计 题目:传送门 题解: 复习splay所以来刷个水... 题目描述不是特别清楚:应该是找第i天以前一个最小的营业额和第i天做差的最小值作为第i天的最小波动值 ...

  2. Ubuntu+caffe训练cifar-10数据集

    1. 下载cifar-10数据库 ciffar-10数据集包含10种物体分类,50000张训练图片,10000张测试图片. 在终端执行指令下载cifar-10数据集(二进制文件): cd ~/caff ...

  3. centos + nodejs + egg2.x 开发微信分享功能

    本文章发到掘金上,请移步阅读: https://juejin.im/post/5cf10b02e51d45778f076ccd

  4. 《ServerLess 给前端带来了什么》笔记

    1. Serverless 是什么 Serverless “无服务器架构”,即大量依赖第三方服务(也叫做后端即服务,即“BaaS”)或暂存容器中运行的自定义代码(函数即服务,即“FaaS”)的应用程序 ...

  5. C++中的pair,make_pair学习

    std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型.例如std::pair<int,float> 或者 std::pair<double,do ...

  6. spring《四》自动装配

    byName模式<bean autowire="byName"> Spring会查找一个叫做date的bean定义. byType模式<bean autowire ...

  7. T7315 yyy矩阵折叠(长)

    题目背景 全场基本暴零 题目描述 输入输出格式 输入格式: 如图 输出格式: 如图 输入输出样例 输入样例#1: 2 2 1 -2 3 -4 输出样例#1: 4 输入样例#2: 2 5 1 -2 -3 ...

  8. Java对象、Json、Xml转换工具Jackson使用

    在Java项目中將一个对象转换成一段Json格式的字符串是非常常见的,能够实现这种需求的工具包也比较多,例如Gson.JSON-lib.Jackson等等.本文主要介绍Jackson的使用,Jacks ...

  9. learn cmake

    cmake简介 在cmake出现之前,在linuxiax下,大型软件系统一般使用make来控制编译过程,而在Windows下可能是用vs下一个project来构建.一个复杂的系统本身依赖关系就很麻烦, ...

  10. C语言基础 (4) 原码反码补码与数据类型

    1.回顾 使用gcc编译代码 gcc hello.c -o hello windows下编译代码 C语言编译步骤: 预处理(头文件展开,干掉注释) gcc -E hello.c -o hello.i ...