使用 mysqli 绑定未知数量的参数

2023-12-09

我正在尝试在表中进行搜索,如下所示:http://www.phpjabbers.com/free-scripts/mysql-search-table/search.php

我发现我可以根据搜索形式 $_GET 连接一个字符串,这样我就可以在获取参数后查询所有内容:

$query = "SELECT * FROM table WHERE status = 1"
if($_GET['param1']{
  $query = $query." AND param1 = ?";
}
$stmt = $mysqli->prepare($query);

如果我不必添加的话那就完美了:

$stmt->bind_param('i',$_GET['art']);

我按照这篇文章的说明进行操作:https://stackoverflow.com/a/11152781/679333,但通配符部分不起作用。当我将变量推入数组时,我引用了变量,而不是 for 循环:

array_push($user_terms, &$_GET['var']);

它有效,但现在我收到“已弃用:调用时传递引用已被弃用”警告。

我不想忽略这个警告,因为我读到 Call-time pass-by-reference has now be Killed from PHP。


虽然有点马虎,但还是完成了工作。

function refValues($arr){
    if (strnatcmp(phpversion(),'5.3') >= 0) //Reference is required for PHP 5.3+
    {
        $refs = array();
        foreach($arr as $key => $value)
            $refs[$key] = &$arr[$key];
        return $refs;
    }
    return $arr;
}

$params = array();

$query = "SELECT * FROM table WHERE status = 1";

// Iterate over your paramters from $_GET
foreach ($_GET as $k => $v) 
{ 
  if(!empty($v)
  {
    $query .= " AND $k = ?";
    $params[$k] = helper::sanitize($v);
  }
}
// After you get through all your params...

$stmt = $mysqli->prepare($query);

// Bind em.
call_user_func_array(array($stmt, 'bind_param'), refValues($params));

应该可以,尽管我以前从未与 mysqli 绑定过。让我知道这是如何运作的。

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

使用 mysqli 绑定未知数量的参数 的相关文章

  • 当错误较多时,Laravel 不会显示错误。这是 Bug?

    重复的https github com laravel framework issues 31123 https github com laravel framework issues 31123 Laravel 版本 6 8 0 6 10
  • PHP 有效读取 csv 文件

    有几种使用 PHP 读取 CSV 文件的方法 我以前用过explode函数将每一行放入一个数组中 然后explode逗号并使用trim删除数据周围的任何引号 本来就很乱 PHP 5 现在有fgetcsv和 str getcsv 我猜这是这些
  • 计算两个数字之间的差异

    我想计算两个给定数字之间的差异 例如 1 5 或 24 35 我必须将数组中的数字分开并写出它们之间的差异 如下所示 1 2 3 4 5 或 24 25 26 27 28 29 30 31 32 33 34 35 是否有任何 php 函数可
  • 如何将 Filesystem 类的 glob 方法与 StorageFacade 结合使用?

    这涉及到拉拉维尔 5 我可以看到Illuminate Filesystem Filesystem一个方法叫做glob pattern flags 0 不幸的是 这个方法并没有体现在默认的情况下FilesystemAdapter随 Larav
  • 如何在 标签中用 %20 替换空格

    我想替换 html 文本的图像标签中的所有空格 Example img src to img src photo 201 jpg 我没有找到 preg replace 的解决方案 但它可能是一个简单的正则表达式行 谢谢 Edit 抱歉各位
  • 如何从 Laravel 5 中的 Public/Images 文件夹中删除图像(URL 数据)

    如何从 laravel 5 中的 public images 文件夹中删除图像文件 我从这个网站找到了一些例子 但我知道他们只是在他们的文件中使用文件名record table 但我正在使用类似的东西URL e g localhost pr
  • Symfony php.ini Debian

    我在 Oracle VM VirtualBox 上使用 Debian 7 amd64 LAMP 服务器 我正在尝试安装 Symfony 但遇到了一些小问题 当我运行命令时 php my project name app check php
  • 为什么我应该使用 $_GET 和 $_POST 而不是 $_REQUEST? [复制]

    这个问题在这里已经有答案了 除此之外 REQUEST从 cookie 读取 有什么理由我应该使用 GET and POST代替 REQUEST 这样做的理论和实践理由是什么 当我只想让用户的某些数据返回某些数据时 我使用 REQUEST 当
  • 这些加密算法有什么区别?

    两者有什么区别MCRYPT RIJNDAEL 128 MCRYPT RIJNDAEL 256 MCRYPT BLOWFISH等等 哪一种最适合网络数据传输 Rijandel 是 AES 的另一个名称 AES 是当前的 一个好的标准 算法 数
  • xdebug_start_trace 行为异常

    我正在尝试进一步减少脚本内存使用量 我试图让我的脚本使用 xdebug 生成输出来分析内存使用情况 这是一个基于 CLI 的脚本 有 shebang usr local bin php q 我向它传递一个参数并检查它 argc gt 1 i
  • PHP 警告 ZipArchive::extractTo():权限被拒绝

    我创建了一个应用程序 它使用 ZipArchive 类 php 中的标准 中的方法 extractTo 并在 Windows 7 上的本地主机 apache 服务器上对其进行了测试 没有任何问题 但是当我在一些unix生产服务器上尝试过它之
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • 如何在 Laravel 5 中处理嵌套的 JSON 对象请求?

    我们在 Laravel 5 和 AngularJs Ionic 中运行此 Web 服务来处理 Web 当我们将请求从 Web 客户端 发送到 Web 服务 后端 时 我们传递了嵌套的 JSON 对象 我们在读取服务器端父对象下的所有子对象时
  • CSV 从 UTF8 到 ISO-8859-1

    我正在尝试修改我的 CSV 导出 但它不会将我的 CSV 从 UTF 8 转换 保存为 ISO 8859 1 请问我做错了什么吗 实际上自从修改了这个之后 我得到了一个空的 CSV 文件 php 7 0 x function my Gene
  • 解析 PHP 响应:未捕获的语法错误:意外的标记 <

    我正在使用 AJAX 来调用 PHP 脚本 我唯一需要从响应中解析的是脚本生成的随机 ID 问题是 PHP 脚本会引发许多错误 这些错误实际上很好 不会妨碍程序功能 唯一的问题是当我跑步时 parseJSON response I get
  • 如何使用 PDO 动态构建查询

    我正在使用 PDO 并想做这样的事情 query dbh gt prepare SELECT FROM table WHERE column value query gt bindParam table tableName query gt
  • php向多个收件人发送邮件

    我可以通过在邮件程序中定义 id 来将电子邮件发送到一个电子邮件 id 但是当用户在表单中键入 消息和电子邮件 id 时 我无法理解如何发送到多个收件人 例如 我正在显示一个带有两个文本区域的表单 一个用于电子邮件 ID 一个用于自定义消息
  • 从外部 bash 设置环境变量

    我试图使用 PHP 从命令行 设置 bash 环境变量 但没有成功 buff array buff VARTESTKEY VARTESTVALUE buff export VARTESTKEY file put contents scrip
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日

随机推荐

  • 使用 Python 捕获单帧(使用网络摄像头)

    我检查了其他解决方案 但他们没有回答我的问题 我的问题是 每当我尝试从视频中仅捕获一帧 我基本上想用网络摄像头拍照 时 我只会看到一个黑色的窗口 Code import cv2 cam cv2 VideoCapture 0 frame ca
  • Nginx proxy_pass 仅部分有效

    我有以下设置 主服务器 调用它https master com 从属服务器 调用它https slave com 两者都在 Ubuntu 16 04 上运行 Nginx 在主服务器上 我在我的目录中创建了以下配置块 etc nginx si
  • Spring Data MongoDB - 聚合框架 - 组操作中的引用无效

    我使用 Spring Data 1 3 0 RC1 来访问我们的 MongoDB 对于一些新查询 我想使用聚合框架 在 mongo shell 中 命令为 db spotreports aggregate unwind pd group i
  • 如何等待在 React-Redux 中设置接收到的同步数组的所有属性?

    我无法使用 map 函数进行渲染 因为即使我从数组中获取数据 数组的长度始终为 0 有没有办法设置异步数组正确加载之前的时间间隔 这是我的代码 function ShortcutComponent usershortcuts console
  • 使用 ID 数组对骨干集合进行过滤和排序

    我对 Backbone 还很陌生 所以我遇到了一些我不太明白的问题 我有一个 Backbone 系列 其中包含 100 多个项目 我想用 ids 数组来过滤它们 这工作正常 但我希望项目的顺序也基于该数组的项目顺序 那是行不通的 其他排序方
  • C++、linux:如何限制函数对文件系统的访问?

    我们的应用程序是由 SU 或普通用户运行的 我们有一个与我们的项目连接的库 在该库中有一个我们要调用的函数 我们有一个文件夹叫notRestricted在我们运行应用程序的目录中 我们创建了一个新线程 我们想要限制线程对文件系统的访问 我们
  • 如何在 C++ 正则表达式中将字符串与左大括号 { 匹配

    我有关于用 C 编写正则表达式的问题 我有 2 个在 java 中运行良好的正则表达式 但这些会引发错误 one of was not preceded by a valid regular expression C 这些正则表达式如下 r
  • CakePHP - 如何从控制器操作返回字符串(如 JSON)到 Ajax 请求

    所以我让 JavaScript 进行 Ajax 调用 my controller ajax action但随后在控制器中我不知道该怎么做才能将某些内容输出回 JavaScript 我收到错误 因为没有视图MyController ajaxA
  • 管理 Ansible YAML 库存文件中的“嵌套”组

    我正在管理多个集群 并且希望将多个清单文件合并到一个清单中 该清单实际上如下所示 all children cluster one children controller hosts host1 host2 host3 compute ho
  • C# 如果记录存在则更新,否则插入新记录

    当用户在页面上的三个框中输入某些值时 我有代码将数据插入表中 盒子里有订单号 总重量和跟踪参考 我现在需要向此代码添加更多功能 并首先检查订单号是否存在 如果存在 我需要更新列 如果不存在 我需要插入新行并向其中添加数据 我的想法很简单 比
  • GCP 无法通过安装 pyodbc 进行部署

    我尝试使用 GCP 谷歌云平台 接口服务与 python 项目 这个项目需要使用 lib pyodbc 进行连接MSSQL In 本地主机很好 但是当我尝试将此项目部署到 GCP 时 它显示这样的错误 有人可以帮我解决这个问题吗 将运行该应
  • 无法读取未定义的属性“propostas_realizadas” - Angular 2

    我在 Angular 2 中有一个应用程序 我试图在控制台上打印一些数据 console log this disputa propostas realizadas 但是当我尝试打印它时 我收到以下消息 无法读取未定义的属性 proppos
  • POST 期间请求正文中的变量替换为 {}

    我正在使用 Karate DSL 版本 0 6 1 1 并且有以下场景 Scenario Given url baseURL def email test email test domain com def query SELECT FRO
  • UISlider如何设置初始值

    我对 iPhone 开发工作还很陌生 我正在一家公司处理一些现有的代码 我试图设置初始值的 uislider 实际上位于 UITableViewCell 中 并且是一个自定义控件 我在想在单元格初始化 cell QuantitiesCell
  • iOS13 中的超级/下标似乎已损坏(NSAttributedString)

    尝试在 UITextView 中使用 NSAttributedString 显示超级 下标文本似乎在 iOS13 中被破坏 除非有人知道否则 奇怪的是 如果我使用 UIFont systemFont 那么它可以工作 但如果我使用任何其他字体
  • Android onKeyLongPress 当 webview 存在时

    关于那个问题 and 那个问题如果您使用 onKeyDown 和 onKeyLongPress 则需要使用event startTracking 在 onKeyDown 里面 但我使用 WebView 怎么做才能加入onKeyDown和on
  • 使用 jQuery 扩展 div,而不移动浮动到其上的 div

    我正在尝试获得类似于您可以找到的效果http www nokiausa com us en products 带有基本信息网格 单击即可扩展相邻项目的信息 我遇到的一个问题是 扩展我的 div 会使相邻的 div 移动 我想我可能必须使用克
  • AWK 能理解用 E 表示法写的数字吗?

    我有一个包含多列的制表符分隔文件 其中一列包含以如下格式编写的数字 4 07794484177529E 293 不知道AWK能理解这个表示法吗 IE 我只想获取该列中的数字小于 0 1 的行 但我不确定 AWK 是否会理解 4 077944
  • 以编程方式添加时,rightAnchor 约束不适用 - swift

    当我添加 rightAnchor 约束时 constant 20 不适用 在leftAnchor就可以了 override init frame CGRect super init frame frame addSubview collec
  • 使用 mysqli 绑定未知数量的参数

    我正在尝试在表中进行搜索 如下所示 http www phpjabbers com free scripts mysql search table search php 我发现我可以根据搜索形式 GET 连接一个字符串 这样我就可以在获取参