调整 select 方法以接受多个参数

2024-02-05

我需要实现一个方法select()可以绑定一个或多个参数和另一种方法,该方法将结果返回到index.php。

从index.php调用所需的代码:

echo $this->_results -> korisnik_id;

这是需要实现的数据库类select()。现在Select()函数接受一个参数...

DB::getInstance() -> Select('SELECT korisnik_id FROM korisnici WHERE korisnik_ime= ?', 's', 'Alex');

...但仅此而已:

DB::getInstance() -> Select('SELECT korisnik_id FROM korisnici WHERE korisnik_ime= ? AND korisnik_grupa= ?','si', 'Alex', '1');

全班:

<?php
class DB{
    private static $_instance = null;
    private $_stmt,$_query,$_error=false,$_results,$count=0;

    public function __construct() {
        try{

            $this-> _stmt = new mysqli(Config::get('mysql/host'),Config::get('mysql/username'),Config::get('mysql/password'),Config::get('mysql/db'));
            if (mysqli_connect_errno()) {
                    printf("Connect failed: %s\n", mysqli_connect_error());
                    exit();
            }

        } catch (Exception $ex) {

        }

     }

     public static function getInstance(){

         if(!isset(self::$_instance)){
             self::$_instance = new DB();
         }
         return self::$_instance;
     }


     public function Select($query, $paramString = ''){
    $stmt = $this->_stmt->prepare($query);

    if (func_num_args() > 2){
        $parameters = func_get_args();

        array_shift($parameters); // remove the query from the list
        // Array needs to be bound by reference

        foreach ($parameters as $key=>&$value) {
            $parameters[$key] = &$value;

        }
       call_user_func_array(array($stmt, "bind_param"), $parameters);
    }
    $stmt->execute();
    $this->_results = $stmt->get_result();
    $stmt->close();

   $this->_results = $this->_results -> fetch_object();
    echo $this->_results -> korisnik_id;

}


}
?>

我认为你很接近。

用这样的东西来代替当前的 foreach 循环怎么样:

foreach ($parameters as $key=>&$value) {
            $this->_stmt->bindParam ($key, $value, PDO::PARAM_STR);

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

调整 select 方法以接受多个参数 的相关文章

随机推荐

  • 我想一次滚动多个回收器视图如何实现

    我想滚动多个RecyclerView一次如何实现该 Exp 我有 3RecyclerView水平方向 当我第一次滚动时RecyclerView那么第二个和第三个也应该滚动怎么办 答案很简单 你必须从一个回收视图获取滚动反馈并将其传递给其他回
  • python中的return和break有什么区别?

    python中的return和break有什么区别 请解释一下它们在循环和函数中到底做了什么 谢谢 break用于提前结束循环 whilereturn是用于将返回值传递回函数调用者的关键字 如果不带参数使用它 它只会结束函数并返回到之前执行
  • Angular 6:从后端服务器获取文件对象后下载文件

    我有一个结构为 type Buffer data Array 702549 的文件对象类型 我需要在 Angular 6 中做什么才能在浏览器中下载此文件 我从这个函数得到我的回应 getMarketingProposalById id s
  • 查找数组中出现次数最多的第 N 个数字

    Find the nth most frequent number in array There is no limit on the range of the numbers 我想我们可以 i 使用 C 中的映射存储每个元素的出现情况 i
  • 从 Facelets 调用 servlet 的正确方法?

    使用带有提交按钮的表单从 Facelets 文件调用 servlet 的正确方法是什么 是否需要特定表格 只需使用纯 HTML
  • 我想使用 jquery 操作 iframe 内的 html

    我想我可以通过将 jQuery 函数的上下文设置为 iframe 的文档来做到这一点 如下所示 function document ready some selector frames nameOfMyIframe document doS
  • 如何将字符串转换为长整型而不丢失前导零[重复]

    这个问题在这里已经有答案了 在我的网络服务方法中 我有一个输入类型Long 我应该在左边添加两个零 所以我将其转换为String 我连接了两个零 然后我应该再次转换为Long 我发现java中的Long类型忽略左零 如何在 Long 值中保
  • Android MLKit - 执行 Firebase ML 任务时发生内部错误

    您好 我有一个在 Android 应用程序中使用的自定义模型 但是当我尝试运行它时 会引发 MLkit 异常 所述错误的日志输出如下 Internal error has occurred when executing Firebase M
  • 什么是 SAPI?什么时候会使用它?

    我最近一直在学习 PHP 中的错误处理 并遇到了error log 功能 http docs php net manual en function error log php 在 PHP 手册中 它讨论了所有错误日志类型 我理解所有这些类型
  • 如何异步使用DataAdapter.Fill()?

    我有一个 DataAdapter 正在填充数据集中的 5 个数据表 SqlDataAdapter da new SqlDataAdapter Select from testTable con da Fill ds 0 numberOfRo
  • 如何在嵌入式 Linux Raspberry Pi 上安装 GCC 和/或 apt

    我在树莓派 用于比特币矿工 上有一个预配置的 Linux 发行版 问题是这个发行版非常小 只有 busybox 用于基本命令 它没有包管理器 甚至没有 gcc 编译器 所以我的目标是在上面安装一个 gcc 编译器 这样我就可以进一步安装其他
  • Swagger 是什么?它与 OData 相关吗?

    我熟悉 Microsoft 堆栈 我正在使用 OData 来提供一些宁静的服务 最近 我遇到了 Swagger API 文档 我试图了解它与 OData 的关系 两者看起来都是RESTful规范 哪一种被广泛使用 Swagger是一个规范记
  • strip 函数删除哪些特定字符?

    您可以在以下位置找到以下内容 str strip文档 https docs python org 3 library stdtypes html str strip The charsargument 是一个字符串 指定要删除的字符集 如果
  • 使用 Python 正则表达式匹配尾部斜杠

    我尝试像这样匹配尾随 type re match u https x x x
  • Android:ViewFlipper 和多个图像?

    嘿 我检查了大量的教程和指南 但不知何故找不到它 我需要在我的 Android 应用程序中包含多个图像 它就像一个图像查看器 幻灯片 目前 我只需使用 ImageView 和适配器 使用左 右手势在 drawable mdpi 目录中的图片
  • 如何从 Delphi 访问 Cassandra 分布式数据库

    我正在研究 Cassandra 是否可以作为我们服务器软件的分布式数据库存储的选择 服务器软件是用 Delphi 编写的 但我很难找到如何从 Delphi 访问 Cassandra 数据库的描述 一个建议SO的其他地方 https stac
  • 如何处理 redux saga 中的请求数组

    我正在尝试从我的反应本机应用程序上传多个文件 它正在给予Unexpected Tokenyield 语句错误 是否可以做yield在循环内 files map fileOb gt const response yield call File
  • 如何在 XCode 中获取文本字段的文本

    我用界面生成器制作了一个文本字段 我怎样才能让它的文本在其他地方使用 有没有类似的东西 string text myTextField Text 如果是这样 我该如何命名我的文本字段 因此 您要做的第一件事是在与 xib 文件关联的视图控制
  • 如何将 GUD 断点键绑定更改为旧的键绑定

    目前 我在最新版本的 Emacs 中使用 GUD 自旧版 Emacs 以来 键绑定已经发生了变化 现在设置断点是 C x C a C b 但它是 C 空格 我想知道是否有办法将键绑定更改为旧格式 由于某种原因我无法更改我的 Emacs 版本
  • 调整 select 方法以接受多个参数

    我需要实现一个方法select 可以绑定一个或多个参数和另一种方法 该方法将结果返回到index php 从index php调用所需的代码 echo this gt results gt korisnik id 这是需要实现的数据库类se