Comando::Executar
. के रूप में स्थिर नहीं है, बल्कि public function...
. के रूप में घोषित किया गया है , आपको कुछ ऐसा करना होगा जैसे:
$comando = new Comando();
$queryMesasAtivas = $comando->Executar('SELECT * FROM mesas WHERE status =1 AND numero !="'.$_SESSION["mesa"].'"');
if ($queryMesasAtivas->num_rows > 0) {
while ($rowMesasAtivas = $queryMesasAtivas->fetch_assoc()) {
echo "<option value='".$rowMesasAtivas['numero']."'>Mesa ".$rowMesasAtivas['numero']."</option>";
}
}
else {
echo '<option>Nenhuma mesa ativa</option>';
}
या विधि को स्थिर घोषित करें, अर्थात्:
public static function Executar($sql)
{
$con = new Conexao();
$con->Abrir();
$re = $con->mysqli->query($sql);
$con->Fechar();
return $re;
}
और फिर आप डबल कोलन का उपयोग कर सकते हैं (::
) वाक्य रचना:
$queryMesasAtivas = Comando::Executar('SELECT * FROM mesas WHERE status =1 AND numero !="'.$_SESSION["mesa"].'"');
मेरा सुझाव है कि नहीं हर बार जब आप कोई क्वेरी चलाते हैं तो एक खुले और बंद को कॉल करना, बल्कि इस तरह की एक कक्षा को कॉल करना:
class Conexao
{
private $link;
public function __construct($host = null, $username = null, $password = null, $dbName = null)
{
$this->link = mysqli_init();
$this->link->real_connect($host, $username, $password, $dbName) or die("Failed to connect");
}
public function __destruct()
{
$this->link->close();
}
public function Query($sql)
{
return $this->link->query($sql);
}
}
इसके बाद इसका उपयोग इस प्रकार किया जाता है:
$conexao = new Conexao("host", "username", "password", "db_name");
$result = $conexao->Query("SELECT * FROM `table` WHERE 1 ORDER BY `id` ASC;");
यह न केवल छोटा है, बल्कि सर्वर पर अधिक हल्का है क्योंकि आप डेटाबेस कनेक्शन को स्थायी रूप से खोल और बंद नहीं कर रहे हैं, CPU उपयोग और मेमोरी उपयोग को कम कर रहे हैं।
मेजबान आदि के लिए स्थिर गुणों का उपयोग करना (उन्हें __destruct
. के बाद भी स्मृति में रखता है का उपयोग किया जाता है, इसलिए आपको उन्हें हर बार पुनः घोषित करने की आवश्यकता नहीं है):
class Conexao
{
private $link;
private static $host, $username, $password, $dbName;
public function __construct($host = null, $username = null, $password = null, $dbName = null)
{
static::$host = $host ? $host : static::$host;
static::$username = $username ? $username : static::$username;
static::$password = $password ? $password : sattic::$password;
static::$dbName = $dbName : $dbName : static::$dbName;
$this->link = mysqli_init();
$this->link->real_connect(static::$host, static::$username, static::$password, static::$dbName) or die("Failed to connect");
}
public function __destruct()
{
$this->link->close();
}
public function Query($sql)
{
return $this->link->query($sql);
}
}
$conexao = new Conexao("host", "username", "password", "db_name");
$result = $conexao->Query("SELECT * FROM `table` WHERE 1 ORDER BY `id` ASC;");
$conexao->__destruct(); // Destroy the class
$conexao = new Conexao(); // Reinitialise it
$result = $conexao->Query("SELECT * FROM `table` WHERE 1 ORDER BY `id` ASC;");
कनेक्शन क्लास के कॉन्फिग इंस्टेंस का उपयोग करना:
config.php फ़ाइल:
<?php
require_once 'path/to/Conexao.php';
$conexao = new Conexao("host", "username", "password", "db_name");
?>
index.php फ़ाइल:
<?php
require_once 'config.php';
$result = $conexao->Query("SELECT * FROM `table` WHERE 1 ORDER BY `id` ASC;");
?>
कक्षा में अब my github पर अभिभावक हैं। !