Гуру PHP, подскажите почему так.
Есть класс, в котором есть статический метод для коннекта к БД:
class DB
{
static function init()
{
// blah-blah-blah
$db = new mysqli($host, $user, $pass, $bd_name);
if (mysqli_connect_errno()) {
echo("Подключение к серверу MySQL невозможно. Код ошибки: ".mysqli_connect_error()."\n");
exit;
}
return $db;
}
}
И есть метод, который этим пользуется:
function add_prof() {
$name = trim($_POST['name']);
$q = DB::init()->prepare(DB::SQL_ADD_PROF);
$q->bind_param('s', $name);
$q->execute();
echo "err".$q->error;
$q->close();
}
При такой записи: $q = DB::init()->prepare(DB::SQL_ADD_PROF);
На строке $q->bind_param('s', $name); падает «Lost connection to MySQL server during query»
Но если написать так:
$db = DB::init()
$q =$db->prepare(DB::SQL_ADD_PROF);
То всё работает.
PHP 5.3.3