J'essaie d'apprendre la programmation orientée objet plus clair en créant une classe de base de données en PHP.OO classe de base de données
C'est ce que j'ai en ce moment. J'obtiens une erreur à propos de $ mysqli étant une variable indéfinie lorsque j'essaie de l'appeler en utilisant $ db-> query();
Veuillez expliquer comment définir la variable $ mysqli définie.
<?php
class phpDatabaseClass {
public function __construct()
{
$mysqli = new mysqli(DBhost, DBusername, DBpassword, DBname);
}
public function query()
{
$sql = 'select * from users';
$results = $mysqli->query($sql);
if(($results->num_rows) > 0)
{
echo 'We have: '.$results->num_rows;
}
}
}
?>
Dans un autre fichier je suis instanciation de l'objet puis appeler une fonction comme ceci:
require 'phpDatabaseClass.php';
define('DBhost', 'localhost');
define('DBusername', 'root');
define('DBpassword', 'root');
define('DBname', 'campbellCustomCoatings');
$db = new phpDatabaseClass();
$db->query();
Je pensais que le but de la définition des constantes était de ne pas pouvoir être modifié. Êtes-vous en train de dire que c'est risqué parce qu'il peut être changé ou parce qu'il peut être vu par un utilisateur? Quelle serait la meilleure solution? – Catfish
@Chatfish Seulement risqué car ils sont disponibles dans le monde entier. Voir aussi cette question http://stackoverflow.com/questions/593440/what-is-the-best-way-to-store-configuration-variables-in-php – alex