У меня есть файл конфигурации для подключения, но когда я использую $ this-> con> prepare () или $ this-> con> query () не работают.
Но когда я делаю отдельную переменную для соединения, ее работа прекрасно работает ниже.
этот код не работает
private function isEmailexist($email)
{
$stmt = $this->con->prepare("SELECT * FROM devices WHERE email = ?");
$stmt->bind_param("s",$email);
$stmt->execute();
$stmt->store_result();
$rows = $stmt->num_rows;
echo "Rows : ".$rows;
}
Этот код работает
private function isEmailexist($email)
{
$mysqli = new mysqli("localhost", "root", "", "demo1");
$stmt = $mysqli->prepare("SELECT * FROM devices WHERE email = ?");
$stmt->bind_param("s",$email);
$stmt->execute();
$stmt->store_result();
$rows = $stmt->num_rows;
echo "Rows : ".$rows;
}
это конфигурационный файл
class Config
{
private $con;
function __construct(){}
function connect()
{
define('DB_USERNAME','root');
define('DB_PASSWORD','');
define('DB_NAME','demo1');
define('DB_HOST','localhost');
$con = new mysqli(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo "Connection success...";
return $this->con;
}
}
Ваша проблема с настройкой $con
Внутри connect()
Ты используешь
// $con is only visible within the scope of the connect function
$con = new mysqli(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME);
но это должно быть
// this will set the config class's $con property so that it is re-usable
$this->con = new mysqli(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME);
Других решений пока нет …