繁体   English   中英

尝试使用没有第二个参数的函数

[英]Trying to use function without second parameter

我一直在尝试使用一个函数而未声明其第二个参数,但是它似乎不起作用。 我做错了什么?

我还尝试声明没有第二个参数$db->DoQuery($query, null);的函数$db->DoQuery($query, null); 结果相同。

<?php 
include($directory . "classes/database.php");
$db = new database;
$db->initiate();
include("../includes/core.php");
$query = "SELECT * FROM services";
$db->DoQuery($query, null);
$num = $db->fetchAll();
print_r($num);
?>

下面是数据库类。

<?php
class database {
  public function initiate() {
    $user             = "user";
    $password         = "pass";
    $hostname         = "localhost";
    $dbn              = "dbt";

    try
    {
      $this->database = new PDO("mysql:host={$hostname};dbname={$dbn}", $user, $password);
    }
    catch(PDOException $e)
    { 
      $error = "I'm unable to connect to the database server.";
      die("Failed to connect to database: " . $e->getMessage());
    }

    $this->database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  }

  public function DoQuery($query, $query_params) {
    try
    {
      $this->result = $this->database->prepare($query);
      if ($query_params != null)
      {
        $this->result->execute($query_params);
      }
      else
      {
        $this->result->execute();
      }
    }
    catch(PDOException $e)
    {
      die();
    }
  }

  // A function to fetch a single row from the query
  public function fetch() {
    return $this->result->fetch();
  }

  // A function to fetch multiple rows from the query
  public function fetchAll() {
    return $this->result->fetchAll();
  }

    // A function to fetch number of rows from the query
  public function RowCount() {
    return $this->result->RowCount();
  }

}
?>

数据库类的变化

public function DoQuery($query, $query_params = null) {

没有第二个参数的调用

$db->DoQuery($query);

用第二个参数调用

$db->DoQuery($query, null);

将第二个参数设置为array()

public function DoQuery($query, $query_params = array()) {
    try
    {
      $this->result = $this->database->prepare($query);
      $this->result->execute($query_params);
    }
    catch(PDOException $e)
    {
      die();
    }
}

然后,如果您不想传递任何查询参数,则只需省略第二个参数。

$db->DoQuery($query);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM