拼接sql语句参数绑定
/**
* 事务封装方法
* @access public
* @param array $sqls 要执行的sql数组或语句
* @return boolean
*/
public function transExecuteSql($sqls, $vals) {
try {
$this->startTrans();
if (is_array($sqls)) {
foreach ($sqls as $k => $sql) {
if (!isNull($vals)) {
foreach ($vals[$k] as $valKey => $val) {
$sql = $this->bindParam($sql, $valKey + 1, $val);
}
} $result = $this->db->execute($sql);
if ($result === false) {//update 数据和原来如果一样的话返回的是0
// if(!$result)
$this->rollBack();
return false;
}
}
} else {
$result = $this->db->execute($sqls);
if (!$result) {
$this->rollBack();
return false;
}
}
$this->commit();
return true;
} catch (\Exception $e) {
$this->rollBack();
//
$sxLog = new \Org\Log\SXLog();
$sxLog->recordSqlLogger($e);
return false;
}
}
/**
* 绑定参数过程
*
* @param string $sql SQL语句
* @param int $location 问号位置
* @param mixed $var 替换的变量
* @param string $type 替换的类型
*/
public function bindParam(&$sql, $location, $var, $type = 'STRING') {
switch ($type) {
//字符串
default: //默认使用字符串类型
case 'STRING' :
$var = addslashes($var); //转义
$var = "'" . $var . "'"; //加上单引号.SQL语句中字符串插入必须加单引号
break;
case 'INTEGER' :
case 'INT' :
$var = (int) $var; //强制转换成int
//还可以增加更多类型..
}
//寻找问号的位置
//for ($i=1, $pos = 0; $i<= $location; $i++) {
$pos = strpos($sql, '?', $location + 1);
//}
//替换问号
$sql = substr($sql, 0, $pos) . $var . substr($sql, $pos + 1); return $sql;
}
拼接sql语句参数绑定的更多相关文章
- ASP.NET实现列表页连接查询 拼接sql语句 绑定grivdView
ASP.NET实现列表页连接查询 拼接sql语句 如图效果: 基本需求:1.当页面第一次加载的时候默认查询一个月时间(或者说是登陆者所属权限的所有数据)的数据绑定到gridView 2.添加查询条件时 ...
- java动态拼接sql语句并且执行时给sql语句的参数赋值
问题 在这里举一个例子,比如我要做一个多条件模糊查询,用户输入的时候有可能输入一个条件,也有可能输入两个条件,这时执行查询的sql语句就不确定了,但可以用动态拼接sql语句来解决这个问题. 解决方法 ...
- 查询拼接SQL语句,多条件模糊查询
多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e ...
- StringBuilder 拼接sql语句比较快
StringBuilder 拼接sql语句比较快StringBuilder strBuilder = new StringBuilder();strSql += "insert into t ...
- C#中SQL语句参数写法
OracleConnection oc=new OracleConnection("data source=osserver;User Id=****;password=**"); ...
- MyBatis绑定Mapper接口参数到Mapper映射文件sql语句参数
一.设置paramterType 1.类型为基本类型 a.代码示例 映射文件: <select id="findShopCartInfoById" parameterType ...
- 使用表达式避免拼接SQL语句
在SQL语句编写过程中,无论在存储过程中还是在程序中,有时为了使语句兼容全部情况与某字段的特殊情况,不得不拼接SQL字串 如下表 商品ID 类别ID 1 1 2 1 3 2 4 3 5 3 如果我们要 ...
- 多条件搜索拼接Sql语句
1. 如下实例: 1.1 如下图所示:[通过用户输入的数据拼接Sql搜索语句] 1.2 private void button2_Click( ...
- 关于拼接SQL语句sqlMap的使用方法
1.为什么使用? 主要还是为了代码中获取到值,然后带入SQL语句中拼接查询 2.怎么使用? 1)bean继承了BaseEntity类,该类中有 /** * 自定义SQL(SQL标识,SQL内容) */ ...
随机推荐
- C#冒泡排序法及优化
冒泡排序法及优化: static void Main(string[] args) { , , , , , }; ; //冒泡排序法 ; i < sums.Length - ; i++) //总 ...
- 了解Python控制流语句——break 语句
这篇文章主要介绍了详解Python中break语句的用法,是Python入门的呼出知识,需要的朋友可以参考下,python基础系列教程之-Python break语句 跳出循环 break 语句用以中 ...
- 从零开始的Python学习Episode 6——字符串操作
字符串操作 一.输出重复字符串 print('smile'*6) #输出6个smile 二.通过引索输出部分字符串 print('smile'[1:]) print('smile'[1:3]) #输出 ...
- MR execution in YARN
Overview YARN provides API not for application developers but for the great developers working on ne ...
- LeetCode - 326, 342, 231 Power of Three, Four, and Two
1. 问题 231. Power of Two: 判断一个整数是否是2的n次方,其中n是非负整数 342. Power of Four: 判断一个整数是否是4的n次方,其中n是非负整数 326. Po ...
- Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
自己搭建了一套伪分布的大数据环境,运行Hadoop包中自带的示例时,出现如下错误: 错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMas ...
- Python中的Comprehensions和Generations
Python中的Comprehensions和Generations语法都是用来迭代的.Comprehensions语法可用于list,set,dictionary上,而Generations语法分为 ...
- Java学习个人备忘录之多线程
进程:正在进行中的程序(直译). 线程:就是进程中一个负责程序执行的控制单元(执行路径) 一个进程中可以有多个执行路径,称之为多线程. 一个进程中至少要有一个线程. 开启多个线程是为了同时运行多部分代 ...
- 测试报告M2
1,项目简介我们已经在第一次测试报告中说过,这一次主要说一下场景测试实例 1.1测试人员 测试人员包括团队开发小组成员以及特邀测试用户组. 1) 团队内部测试主要针对网站支持的各功能组件进行一一测试 ...
- 团队第一次作业 ——404 Note Found 团队
如果记忆是一个罐头的话,我希望这一罐罐头不会过期----<重庆森林> 404 Note Found Team 如果记忆是一个备忘录的话,别说了,它不会过期----<404 Note ...