<?php
$mysqli = new mysqli('localhost','root','123','test');
if (mysqli_connect_errno()){
printf("Подключение к серверу MySQL невозможно. Код ошибки: %s\n",mysqli_connect_error());
exit;
}
class Model {
public function getUserNameByEmail($usE)
{
if ($result = $mysqli->prepare('SELECT * FROM table'));
{
$result->execute();
$result->bind_result($name);
$result->fetch();
return $name;
}
}
}
$user = new Model();
echo $user->getUseraNameByEmail('my@email.com');
?>
* выбираю все поля, просто для сокращения.
Спустя 5 минут, 30 секунд (3.05.2012 - 14:52) inpost написал(а):
$mysqli - его нет внутри класса. Почитай про область видимости переменных.
Спустя 17 минут, 8 секунд (3.05.2012 - 15:09) Stasonix написал(а):
А как его внутрь класса запихнуть? То как переменные внутрь класса запихнуть я знаю, а вот как в этом случае затрудняюсь,
п.с. наверно при конструкторе лучше определить.
п.с. наверно при конструкторе лучше определить.
Спустя 3 минуты, 39 секунд (3.05.2012 - 15:12) inpost написал(а):
Вторым аргументом передавать внутрь метода класса.
У себя я вообще сделал статичный синглтон для этих целей.
У себя я вообще сделал статичный синглтон для этих целей.
Спустя 2 минуты, 10 секунд (3.05.2012 - 15:15) Stasonix написал(а):
возможно подкорректируете, ошибка та же самая выдается:
class Model {
private $mysqli;
public function getUserNameByEmail($usE)
{
if ($result = $mysqli->prepare('SELECT * FROM table'));
{
$result->execute();
$result->bind_result($name);
$result->fetch();
}
}
private function connect()
{
$this->mysqli = new mysqli('localhost','root','123','test');
if (mysqli_connect_errno()){
printf("Подключение к серверу MySQL невозможно. Код ошибки: %s\n",mysqli_connect_error());
exit;
}
else
{
return TRUE;
}
}
public function __construct()
{
$this->connect();
}
}
$user = new Model();
echo $user->getUserNameByEmail('my@email.com');
Спустя 27 секунд (3.05.2012 - 15:15) T1grOK написал(а):
Чтот тип такого. По синглтону. И дергать постоянно getInstance.
class DB{
static private $instance = NULL;
static function getInstance()
{
if (self::$instance == NULL)
{
self::$instance = new mysqli('localhost','root','123','test');
}
return self::$instance;
}
private function __construct()
{
}
private function __clone()
{
}
}
Спустя 2 минуты, 58 секунд (3.05.2012 - 15:18) T1grOK написал(а):
Цитата (Stasonix @ 3.05.2012 - 13:15) |
возможно подкорректируете, ошибка та же самая выдается: |
Опять же. Читаем об области видимости переменных.
$this->mysqli И $mysqli разные переменные.