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. ZOJ 2913 Bus Pass (近期的最远BFS HDU2377)

    题意  在全部城市中找一个中心满足这个中心到全部公交网站距离的最大值最小 输出最小距离和满足最小距离编号最小的中心 最基础的BFS  对每一个公交网站BFS  dis[i]表示编号为i的点到全部公交网 ...

  2. linux系统oracle服务自启动

    终于知道为什么自启动脚本一直无法成功执行,原来都是空格不对惹的祸.具体步骤说明如下: 1.修改dbstart和dbshut脚本 dbstart脚本默认值启动oracle服务,不启动监听服务,如果想在启 ...

  3. BZOJ 4710 容斥原理+dp

    //By SiriusRen #include <cstdio> using namespace std; int n,m,a[1005]; typedef long long ll; l ...

  4. [转] Java 插入表记录后得到自增的id (附3种方法代码)

    转自:https://blog.csdn.net/yaerfeng/article/details/7231093 在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作 ...

  5. px 与 pt

    px:pixel,像素,屏幕上显示的最小单位,用于网页设计,直观方便: pt:point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用: em:即%,在CSS中,1em=100 ...

  6. 动画view

    1:view动画 @1:xml中 alph:渐变透明度动画效果 scale:渐变尺寸伸缩动画效果 translate:画面转换位置移动动画效果 rootate:画面转移旋转动画效果 @2:JavaCo ...

  7. [原创]c语言中const与指针的用法

    最近一直在准备笔试,补补大一大二欠下的课.复习c语言时碰见这么个题:   1 2 3 4 5 int a=248, b=4; int const c=21; const int *d=&a;  ...

  8. Android 强制软键盘关闭

    在Android开发过程中,有时候我们会有强制关闭软键盘的需求.比如说:现在有一个文本编辑框(testEt)和一个按钮(testBtn),我们现在点击文本编辑框testEd,这时会弹出软键盘,然后我们 ...

  9. java ScriptEngine 使用 (java运行脚本文件)

    转自:http://www.tuicool.com/articles/imEbQbA Java SE 6最引人注目的新功能之一就是内嵌了脚本支持.在默认情况下,Java SE 6只支持JavaScri ...

  10. stm8s103调试注意点

    外设时钟的配置,有次ADC就是不工作,查问题查了很久,总是怀疑ADC配置问题,然后利用库函数的例程,发现就可以,最后发现,外设时钟没开启,外设时钟如下配置 CLK->PCKENR1 = 0x00 ...