SQL 语句通常是动态构建的,用户提供一些输入,并将其内置到语句中。 程序员每次处理用户的输入时都必须谨慎。 它具有一些严重的安全隐患。 动态构建 SQL 语句的推荐方法是使用参数绑定。

绑定参数可以防止 SQL 注入程序。 它会自动转义一些特殊字符并允许正确处理它们。 当我们准备语句并绑定参数时,许多数据库也会显着提高其性能。

该示例从Cars表中为特定的汽车名称选择一行。

这是一个可能来自用户的值。 例如从 HTML 表单。

问号?是值的占位符。 它将稍后添加到脚本中。

在execute()方法中,我们将值绑定到占位符。

以下示例与上一个示例相同; 这次我们使用bind_param()方法。

使用bind_param()方法检索带有参数绑定的行。

bind_param()方法采用一个值,并将其与 SQL 语句内的占位符关联。 可以有更多的占位符。 占位符从 1 开始编号。

quote参数

使用占位符并将参数绑定到它们是处理动态 SQL 语句构建的最佳方法。 有时不能使用占位符。 例如,当我们要动态选择一个表名时。 在这种情况下,我们可以连接 SQL 字符串并使用quote()和quote_identifier()方法。 我们必须对变量使用这些方法,否则会引入严重的安全性错误。

quote()方法引用字符串文字,以用作 SQL 语句中的字面值。 它转义包含在字符串中的任何特殊字符(例如引号),并添加所需类型的外部引号。 quote_identifier()方法引用在 SQL 语句中使用的标识符(表名等)。 它转义包含的任何特殊字符(例如双引号),并添加所需类型的外部引号。

在该示例中,我们使用quote()和quote_identifier()方法动态构建 SQL 语句字符串。

这些是在 SQL 语句中使用的 Perl 标量。

我们有一个更复杂的 SQL 语句。 无法使用占位符构建此语句。 我们使用 quote 方法来引用提供的标量。

绑定列

使用获取方法时,我们将返回的值复制到 Perl 变量中。 通过绑定列可以简化此过程并使其更快。 Perl DBI 具有bind_col()和bind_columns()方法,它们将 Perl 变量与表列相关联。

在示例中,我们将Cars表的三列绑定到$id,$name和$price变量。

我们使用bind_columns()方法将变量绑定到Cars表的列。

我们遍历返回的数据并将值打印到控制台。

mysql 绑定参数_MySQL 使用 Perl 绑定参数和列相关推荐

  1. mysql 查询绑定变量_MySQL高级特性——绑定变量

    从MySQL 4.1 版本开始,就支持服务器端的绑定变量,这大大提高了客户端和服务器端数据传输的效率 介绍 当创建一个绑定变量 SQL 时,客户端会向服务器发送一个SQL语句的原型.服务器端收到这个S ...

  2. mysql优化说明_MySQL性能优化各个参数解释说明

    [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock basedir ...

  3. mysql week 参数_MySQL week()函数及参数mode详解

    通常,一年的正常年份为365天,闰年为366天.一年又可以分为许多周,每周有7天. 所以一年,我们经常有365/7 = 52周,周范围是从1到52. 要查看给定日期属于哪个周数,您可以使用WEEK函数 ...

  4. mysql几个timeout参数_MySQL中 timeout相关参数解析

    前言: MySQL中有两个关于连接超时的配置项.他们之间在某些条件下会互相继承,那究竟这两个参数会在什么情况下起作用呢? 本文将会通过一些测试实例来证明总结两者的相互关系. 参数介绍: The num ...

  5. mysql5.7 新增参数_MySQL 5.7 新增参数

    参数 默认值 binlog_group_commit_sync_delay 0 binlog_group_commit_sync_no_delay_count 0 binlog_transaction ...

  6. mysql like 大小写_mysql - 如何使用LIKE通配符在列中搜索(不区分大小写)?

    mysql - 如何使用LIKE通配符在列中搜索(不区分大小写)? 我环顾了一些,但没有找到我之后的情况. SELECT * FROM trees WHERE trees.`title` LIKE ' ...

  7. mysql服务器端的参数有很多_但是对于大多数初学者来说_mysql优化的重要参数 key_buffer_size table_cache...

    MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措,但是哪些参数是需要我们调整的,哪些对服务器的性能影响最大呢?对于使用Myisam存储引擎来说,主要有key_b ...

  8. mysql connections参数_MySQL性能优化之max_connections配置参数浅析

    mysql的max_connections参数用来设置最大连接(用户)数.每个连接mysql的用户均算作一个连接,max_connections的默认值为100.本文将讲解此参数的详细作用与性能影响. ...

  9. jdbc mysql参数_Mysql JDBC URL中的重要参数有啊些

    以下的文章主要介绍的是Mysql JDBC URL中几个比较重要参数的详细说明,我们大家都知道MySQL数据库中存在JDBC URL几个比较重要参数,此文还将对其具体实例进行介绍,希望大家通过本文能得 ...

最新文章

  1. TVM部署和集成Deploy and Integration
  2. Vim----ma6174
  3. /usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)
  4. R语言螺旋线型线性不可分数据xgboost分类:使用xgboost模型来解决螺旋数据的分类问题、可视化模型预测的结果、添加超平面区域渲染并与原始数据标签进行对比分析
  5. 【JS笔记】私有变量
  6. 微信OPENID授权方法
  7. 云原生架构下的持续交付实践
  8. C语言实现linear search线性搜索算法(附完整源码)
  9. Redis学习笔记~分布式的Pub/Sub模式
  10. creo外观库_Proe软件技巧,颜色库下载及其使用方法揭晓
  11. inkscape使用_如何用Inkscape制作万圣节灯笼
  12. 快速清除oracle多个表,Oracle数据库之批量清除一个表的数据,TB级别数据
  13. Educational Codeforces Round 24
  14. php常用技术与thinkphp5,thinkPHP5框架路由常用知识点汇总
  15. OLAP-impala-大数据Week13-DAY6-impala
  16. 创业团队吸贤大法,如何设计完美的员工股权激励计划?
  17. 家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)
  18. 与戴尔科技同行,与远见如影随形
  19. java计算机毕业设计房产中介管理系统源码+系统+lw+数据库+调试运行
  20. qq互联登录授权php配置,开通qq互联开放平台登陆功能的步骤

热门文章

  1. 2-RACommand
  2. 紫书 习题 10-17 UVa 11105 (筛法)
  3. [算法] [常微分方程] [欧拉法 改进欧拉法 经典R-K算法]
  4. 深入Java虚拟机读书笔记[10:20]
  5. 2016.01.04 论文改重
  6. 使用dom4j解析XML例子
  7. Servlet入门 代码
  8. Rancher 2.2.2 发布,优化 Kubernetes 集群运维
  9. [BZOJ2527]Meteors
  10. 亚太信息安全领袖成就表彰计划:阿里成中国互联网公司唯一代表