准备好的语句什么时候会失败? [关闭]

2024-05-08

我一直在搞乱MySQLi对象在PHP,并且习惯于在执行语句之前准备语句。

到目前为止,我主要做了以下事情:

if($stmt = $mysqli->prepare($sql) == false){
    return $mysqli->error;
}

当它失败时,它总是告诉我我的 SQL 基本上是错误的。

假设如下:

  • 已进行检查以确保MySQL连接性
  • The SQL是正确的,即使它返回 0 行。
  • 所有相关表都存在。

在什么情况下准备好的声明会失败?我问,主要是想知道有没有什么意义if($stmt = $mysqli->prepare($sql)),或者我只是浪费代码行?


有效查询失败的原因有很多种:

  • 您对牌桌的权限可能会被撤销。

  • 正确的 SQL 查询可以在无效上下文中使用参数占位符进行格式化。

  • 根据服务器设置,查询可能会抛出错误,例如除以零返回 NULL,但有人可以启用SQL mode http://dev.mysql.com/doc/refman/5.6/en/server-sql-mode.html在服务器上全局进行除以零会抛出错误。还有其他情况,服务器设置可以改变有效 SQL 查询的含义。

  • 您说这些表存在,但任何表都可以删除或重命名。此外,列可能会被更改,因此您以前有效的 SQL 查询将不再找到它命名的列,或者尝试以无效的方式使用它们。

  • 连接可能会意外终止。

因此,当您执行以下操作时,您确实需要检测并响应错误prepare当你execute一个问题。

想象一个简单的文件打开函数的类比,例如fopen() http://php.net/manual/en/function.fopen.php。如果文件名拼写错误,或者在尝试打开文件之前文件被删除,或者有人更改了文件权限,导致您无法使用指定的访问模式读取文件,则可能会出现错误。这意味着您需要在之后检查是否成功everyfopen() 调用。

如果将 mysqli 配置为抛出异常,则可以减少错误检查代码。看http://www.php.net/manual/en/mysqli-driver.report-mode.php http://www.php.net/manual/en/mysqli-driver.report-mode.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

准备好的语句什么时候会失败? [关闭] 的相关文章

  • 学说“没有命名的协会”

    将我添加到无法找出其学说映射出了什么问题的人列表中 我正在模拟国际象棋Game与一对多Halfmoves 有任何想法吗 DDL create table game game id int primary key create table h
  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g
  • 很好地阻止了齿轮工人

    我有许多 Gearman 工作人员不断运行 保存用户页面浏览记录等内容 偶尔 我会更新 Gearman 工作人员使用的 PHP 代码 为了让工作人员切换到新代码 我杀死并重新启动了工作人员的 PHP 进程 有什么更好的方法来做到这一点 据推
  • “为什么”脚本不打印任何内容? [复制]

    这个问题在这里已经有答案了 当我运行以下脚本时 没有打印任何内容 为什么会这样呢 echo var gt 它回显 无 因为您的浏览器无法理解
  • 从文本块中提取相关标签/关键字

    我想要一个特定的实现 以便用户提供如下文本块 要求 使用 Linux Apache 2 的 LAMP 环境的工作知识 MySQL 5 和 PHP 5 Web 2 0 标准知识 熟悉 JSON 使用框架 Zend OOP 的实践经验 跨浏览器
  • 智能位置表单字段

    我的用户注册表单上有一个文本字段location 我本质上希望这个字段能够根据 Google 地图 或同等地图 进行验证 只允许有效位置通过 最好采用类似的格式滑铁卢 伦敦 or 伦敦 英国 要求 除了位置名称之外 我还想返回该位置中心的坐
  • PHP上传文件产生错误代码4。为什么?

    HTML
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • PHP:如何防止不必要的换行

    我正在使用 PHP 创建一些基本的 HTML 标签始终相同 但实际链接 标题对应于 PHP 变量 string p a href strong i title i i strong a br echo string fwrite outfi
  • CSS 无法与 CodeIgniter 一起使用

    这是我的 CI 代码的一部分 class page extends CI Controller var Page public function construct parent construct this gt Page 1 this
  • 如何计算加权平均值?

    我的语言是PHP 但是算法应该是相当通用的 我有一个关联数组 比方说 评级和评级次数 ratings array 1 gt 1 2 gt 3 3 gt 6 4 gt 3 5 gt 3 这相当于 1 2 2 2 3 3 3 3 3 3 4 4
  • 根据通过 AJAX 请求的用户输入重绘 google 图表

    我有一个谷歌图表从我的数据库中提取数据 它可以按我想要的方式工作 根据 URL 中的 get 请求 它从所选表中提取数据 我想根据下拉菜单中选定的表通过 ajax 更新此图表 我无法突破的部分是通过 ajax 获取数据响应 我认为下面的代码
  • 如何在 PHP 数组中的另一个已知(通过键或指针)元素之后有效地插入元素?

    给定一个数组 a array abc 123 k1 gt v1 k2 gt v2 78 tt k3 gt v3 当其内部指针指向其元素之一时 如何在当前元素之后插入元素 如何在键已知元素 例如 k1 之后插入元素 表现护理 您可以通过使用拆
  • DOMPDF - 未找到“字体”类

    我正在尝试通过命令行添加字体 每次我尝试都会收到以下错误 Fatal error Class Font not found in home scripts public html MarketingPalv2 load font php o
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • laravel 5.4 在请求验证之前修改数据[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我有我的自定义请求 它扩展了 Backpack CrudController 现在我想重写 ValidatesWhenResolv
  • 隐藏产品价格和添加到购物车按钮,但不隐藏 WooCommerce 中未注册用户的变体

    在我的 WooCommerce 商店中 我想隐藏价格 直到客户登录为止 我有以下代码可以实现这一点 add action init hide price function hide price if is user logged in re
  • 高效插入和更新时检查唯一性

    我的员工表中有 2 列 每列值必须是唯一的 staff code staff name staff id staff code staff name 1 MGT Management 2 IT IT staff 当向表中插入或更新项目时 我
  • 无法与站点通信以检查致命错误

    无法与站点通信以检查致命错误 因此 PHP 更改已恢复 您需要通过其他方式上传 PHP 文件更改 例如使用 SFTP 有什么解决办法 我正在 WordPress 中编辑头文件 遇到这个问题 尝试这个 我有同样的问题并决定调查一下 更改 wp
  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt

随机推荐

  • 如何将结果导出为 PDF 报告?

    我正在使用 SonarQube 5 6 3 如何将 SonarQube 分析详细信息报告创建为 PDF 表单 Excel 报告或 html 格式的报告 似乎没有可用的插件 我无法使用以下配置生成 html 文件 sonar issuesRe
  • 引起原因:com.datastax.driver.core.exceptions.InvalidQueryException:日期长度应为 8 或 0 字节 (13)

    我正在尝试使用 spring data cassandra 插入数据 但是当我的应用程序使用 Spring Boot 版本是 1 5 3 运行时 我遇到了以下错误 我在spring data中添加了一个实现CrudResposity的自定义
  • 如何递归列出远程 FTP 的目录内容

    从远程 UNIX FTP 服务器下载文件后 您想要验证是否已正确下载所有文件 您至少会在 Windows 命令提示符中获得类似于 dir s 命令的信息 FTP 客户端在 Windows 上运行 遗憾的是这是为 Unix Linux 用户编
  • 按下主页按钮时 onPause 不会触发

    我有一个安卓AppCompatActivity未能点火onPause按下主页按钮时发生的事件 根据安卓文档 https developer android com guide components activities activity l
  • 使用特殊字符创建正则表达式

    我正在为 mongodb 创建一个查询 app get content title function req res var regexp new RegExp req params title i db find title regexp
  • 删除匿名监听器

    当尝试采用使用匿名或嵌套类实现侦听器的风格时 以便隐藏除侦听之外的其他用途的通知方法 即我不希望任何人能够调用actionPerformed 例如来自java动作监听器 实现与匿名类 https stackoverflow com ques
  • HTML-Entity 转义以防止 XSS

    我有一些用户输入 在我的代码中 我确保对以下符号进行转义 gt amp lt gt lt gt gt gt OWASP https www owasp org index php XSS 28Cross Site Scripting 29
  • 扑。如何检查自动续订订阅是否仍然有效

    我的应用程序有 1 个月的自动续订订阅 当用户单击 购买订阅 按钮时 我将购买日期保存到共享首选项中 然后 1 个月后 我需要检查该订阅是否仍然有效 那么我该如何实施呢 2020 年 3 月 11 日更新 你好 我可以看到那些正在寻找如何在
  • 从云函数在 Google Cloud Storage 中创建新的 csv 文件

    第一次使用 Google 云存储 下面我有一个云函数 每当 csv 文件上传到时就会触发该函数my folder在我的桶里 我的目标是在同一文件夹中创建一个新的 csv 文件 读取上传的 csv 的内容并将每一行转换为将进入新创建的 csv
  • 在 Alpine 中找不到运行时/cgo

    In an alpine edge我安装的容器通过 RUN apk add no cache musl dev go 我试着跑go get github com golang protobuf protoc gen go then 这会导致
  • 来自完整 HTML 文档的 jQuery 对象

    是否可以将完整的 HTML 文档解析为完整的 jQuery 对象 当我尝试时 例如 var tmp p test p console log tmp I get title p test 即一个数组 将所有头部的子项与所有身体的子项组合起来
  • 将数组传递给 json.stringify

    我试图将数组传递给 json stringify 但返回的值返回为空 JSON stringify json data returns json 这是数据的内容 data from email protected cdn cgi l ema
  • Capistrano 杀死资产:预编译

    我正在尝试部署我的应用程序 但我不断收到 err xxx xxx xx xxx bash line 1 9953 Killed bundle exec rake RAILS ENV production RAILS GROUPS asset
  • AWS lambda只读文件系统错误,使用docker镜像存储ML模型

    我在 lambda 上使用 docker 容器映像来运行我的 ML 模型 我的 lambda 函数有一个 S3 触发器来获取图像 我正在尝试运行 lambda 函数 但收到此错误 有人可以帮帮我吗 PS 现在我知道 tmp 是 lambda
  • 同时支持 CommonJS 和 AMD

    有没有办法创建一个 javascript 微型库 没有依赖项的库 支持以下所有模块格式 异步模块定义 CommonJS 将库的导出公开为全局命名空间对象 无加载程序 是的 我把这个答案归功于ded https github com ded
  • C# - 捕获 RTP 流并发送到语音识别

    我正在努力实现的目标 在 C 中捕获 RTP 流 将该流转发到 System Speech SpeechRecognitionEngine 我正在创建一个基于 Linux 的机器人 它将接受麦克风输入 将其发送给 Windows 机器 Wi
  • PlayFramework:如何转换 JSON 数组的每个元素

    鉴于以下 JSON values one two three 我如何在 Scala Play 中像这样转换它 values elem one elem two elem three 这很容易Play 的 JSON 转换器 https www
  • 启动 Java 时使用 -d32 和 -d64

    我阅读了以下摘录JDK 常见问题解答 http www oracle com technetwork java hotspotfaq 138619 html 64bit layering 如何在 32 位和 64 位操作之间进行选择 默认是
  • C++ 包装类的设计

    我必须使用一个界面非常笨拙的旧类 由于我无法更改它并且依赖它 因此我想构建一个包装器 提供一个干净的界面 假设我有课笨手笨脚的班级 基本上 我有三种方法 1 参考会员 Class Wrapper public Wrapper ClumsyC
  • 准备好的语句什么时候会失败? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在搞乱MySQLi对象在PHP 并且习惯于在执行语句之前准备语句 到目前为止 我主要做了以下事情 if stmt mysqli