Попытка использовать функцию без второго параметра

Я пытался использовать функцию, не объявляя ее второй параметр, но, похоже, она не работает. Что я сделал не так?

Я также попытался объявить функцию без второго параметра $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();
}

}
?>

0

Решение

Изменение в классе базы данных

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

Вызов без второго параметра

$db->DoQuery($query);

Вызов со вторым параметром

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

Другие решения

Установите второй параметр в 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);
0

По вопросам рекламы [email protected]