Я определил мой файл соединения, как это имя файлаOO и MySQLi в PHP
= connection.php
<?php
$host = "localhost";
$database = "projectp_peas";
$usr= "projectp_admin";
$pass = "9613341694";
$conn = mysqli_connect($host, $usr, $pass) or die (mysqli_error($conn));
?>
Мое соединение нормально.()
Теперь мой первый класс: имя файла product.php
<?php
class Product{
public $PRODUCT;
public $SHORT_DESC;
public $LONG_DESC;
public function showProduct($id){
include_once("conection.php");
mysqli_select_db($conn, $database);
$products = "SELECT * FROM PRODUCTS WHERE ID = '$id' ";
$rs_products = mysqli_query($conn, $products) or die (mysqli_error($conn));
$product = mysqli_fetch_assoc($rs_products);
echo "<h3 style=\"font-size:3em; color:#BBBBBB;\"> ";
echo $product['PRODUCT'] ."</h3>";
echo "<h5> ";
echo $product['SHORT_DESC'] ."</h5>";
echo $product['LONG_DESC'];
}
}
?>
Теперь мой index.php
файл
<div class ="px_70">
<?php
require_once('../script/product.php');
$product = new Product;
$product->showProduct(1);
?>
</div>
Мой запрос работает нормально до сих пор.
Но моя проблема начинается с другого класса. Другой класс, как это:
Имя файла: clients.php
<?php
class User{
public function TopMenu(){
include_once("conection.php");
session_start();
if(isset($_SESSION['EMAIL'])){
$MAIL = $_SESSION['EMAIL'];
mysqli_select_db($conn, $database);
$username= "SELECT * FROM CLIENTS WHERE EMAIL = '$MAIL' ";
$USERNAME_RS = mysqli_query($conn, $username) or die(mysqli_error($conn));
$USR = mysqli_fetch_assoc($USERNAME_RS);
if(mysqli_num_rows($USERNAME_RS)>0){
echo $USR['C_NAME'] . " | <a href=\"../global/logout.php\">Log out </a> | <a href=\"UserPapers.php\"> Papers </a>" ;
}
else{
echo " <a href=\"../login.php\">Login</a> | <a href=\"../Register.php\">Register </a>" ;
}
}
else{
echo " <a href=\"../login.php\">Login</a> | <a href=\"../Register.php\">Register </a>" ;
}
}
}
?>
Снова в index.php
файле:
<div class="tm">
<?php
include_once('../script/clients.php');
$top = new User;
$top->TopMenu();
?>
</div>
Почему я получаю следующие ошибки?
Warning: mysqli_select_db() expects parameter 1 to be mysqli, null given in /home/projectp/public_html/script/product.php on line 11
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home/projectp/public_html/script/product.php on line 13
Warning: mysqli_error() expects parameter 1 to be mysqli, null given in /home/projectp/public_html/script/product.php on line 13
Функция TopMenu() в файле не должна вызывать никаких ошибок. потому что эта функция отлично работает, когда я удаляю класс Product
. Может ли кто-нибудь сказать мне, где я делаю ошибку? Я очень новичок в php OO и mysqli.
Было бы неплохо, чтобы удалить пароль! Или никогда не отправлять пароль в первую очередь. –
'include _ ** once **' ... – deceze
Не перемещайте создание/подключение БД внутри полностью несвязанного класса/метода. Если вам необходимо создать абстракцию для вашего уровня БД, создайте класс DB. Это похоже на покупку мобильного телефона. Вы не купили бы несколько, чтобы иметь мобильный телефон в каждой комнате вашего дома. Вы купите его и возьмите с собой. – h2ooooooo