legend---十、thinkphp中如何进行原生sql操作
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如何向一个数组中添加元素?
- 数组的创建
- var arrayObj = new Array(); //创建一个数组
- var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
- var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值
要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。
- 数组元素的添加
- 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操作的更多相关文章
- [转]ThinkPHP中如何使用原生SQL
From : http://huangqiqing123.iteye.com/blog/1540323 TP的模型可以支持原生SQL操作,提供了query和execute两个方法,为什么原生SQL还要 ...
- thinkphp中常用到的sql操作
1.清空某表数据: $sql = 'truncate table table_name'; Db::execute($sql );
- Golang原生sql操作Mysql数据库增删改查
Golang要操作mysql数据库,首先需要在当期系统配置GOPATH,因为需要使用go get命令把驱动包下载到GOPATH下使用. 首先配置好你的GOPATH,执行以下命令,下载安装mysql驱动 ...
- thinkPHP框架中执行原生SQL语句的方法
这篇文章主要介绍了thinkPHP框架中执行原生SQL语句的方法,结合实例形式分析了thinkPHP中执行原生SQL语句的相关操作技巧,并简单分析了query与execute方法的使用区别,需要的朋友 ...
- THINKphp中复杂的查询
字符串拼接查询 案例一:拼接字符串(多条件查询) $where = ''; //定义字符串,用于拼接满足条件的数据字段 $value = []; // 定义空数组,用于接收值 if(!empty($n ...
- thinkphp中的内置操作数据库与mysql中的函数汇总
8.4.4 Model类getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,vars=array()) ...
- Django之ORM执行原生sql语句
django中的ORM提供的操作功能有限,在模型提供的查询API不能满足实际工作需要时,可以在ORM中直接执行原生sql语句. Django 提供两种方法使用原生SQL进行查询:一种是使用raw()方 ...
- Django框架08 /聚合查询、分组、F/Q查询、原生sql相关
Django框架08 /聚合查询.分组.F/Q查询.原生sql相关 目录 Django框架08 /聚合查询.分组.F/Q查询.原生sql相关 1. 聚合查询 2. 分组 3. F查询和Q查询 4. o ...
- Mybatis中的update动态SQL语句
Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="ent ...
随机推荐
- nyoj--118--修路方案(次小生成树)
修路方案 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 南将军率领着许多部队,它们分别驻扎在N个不同的城市里,这些城市分别编号1~N,由于交通不太便利,南将军准备修路. ...
- HIT Software Construction Lab 2
2019年春季学期 计算机学院<软件构造>课程 Lab 2实验报告 姓名 刘帅 学号 班号 1703008 电子邮件 1609192321@qq.com 手机号码 目录 1 实验目标概 ...
- Python笔记(四)
# -*- coding:utf-8 -*- # 控制语句 # if...else... print "********************1********************** ...
- BZOJ 2141 分块 线段树
思路: a[i] //By SiriusRen #include <cmath> #include <cstdio> #include <cstring> #inc ...
- 通过配置host,自定义域名让本地访问
最近服务器这块一直由我来维护,我们开发的项目很多域名根本没有解析,而是仅仅配置了host,就可以本地访问服务器了.感觉很有意思,于是乎,打算试一试.结果弄了许久,最后第二天才解决了.把这个艰辛的旅程记 ...
- SQLSERVER 链接服务器
1. 执行代码 EXEC sp_addlinkedserver @server='XLZFSqlServer', --链接服务器别名 @srvproduct='', @provider='SQLOLE ...
- struts2学习之基础笔记6
第十一章 Struts 2的国际化 1 国际化简介 http协议,request_locale值 Locale类àà封装类request_locale值 ResourcesBandleàà ...
- iOS11即将到来,让我们具体了解下
谷歌开发者大会后,苹果的WWDC终于也要来了,目前准确时间已经确定. 近日,苹果官方发出的公告显示,WWDC 2017将在北京时间6月6日凌晨1点正式进行,同时他们强调会进行现场直播,用户可以在苹果主 ...
- [ OS ][ Linux ] [ SA ] root 帳號名稱修改
1. 背景: 由於 Linux 中預設最高權限的使用者一律為 root, 存在安全性的疑慮. 所以比較安全的作法要將 root 帳號改名為其他名稱,讓要入侵的人需要同時破解出帳號和密碼才可以進入主機, ...
- Html5必看:教你如何选择移动APP开发框架
如何选择移动APP开发框架一直是困扰很多新手的难题,今天杭州APP开发小编就和大家一起分享一下HTML5 移动app开发过程中框架该如何选择?当然我们得先从下面几个方面来评估一个框架的优越性,然后再做 ...