2015-01-17 4 views
0

Я только что загрузил свой проект на свой сервер веб-сайта, и я получаю это сообщение об ошибке, когда я нажимаю кнопку отправки для моей регистрации в форме.Почему я получаю сообщение об ошибке из файла mysqli/mysqli_driver.php?

A PHP Error was encountered 
Severity: Warning 

Message: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given 

Filename: mysqli/mysqli_driver.php 

Line Number: 315 

У меня нет абсолютно никаких ошибок на моем локальном сервере, и я полностью зациклен на том, что проблема. если кто-то мог бы помочь, я был бы очень благодарен и большое уважение будет предоставлено.

Мой проект использует рамки codeigniters.

+1

где вы код –

+0

ваше сообщение об ошибке сообщает вам, что ваше соединение mysqli является 'boolean', что, скорее всего, означает' false', что означает, что соединение не удалось. Вам нужно проверить ваше соединение. – Sean

+0

Мне удалось убрать ошибку, изменив файл database.php, переключив мой драйвер с mysqli на mysql. не уверен, почему это работает, вы думаете, что mysqli будет работать нормально. теперь, когда я нажимаю кнопку входа в систему, он застревает в моей функции login_validation, и страница просто отображается пустым. теперь я понятия не имею, что посмотреть или исправить. он отлично работает на моем локальном сервере. –

ответ

1
mysqli_real_escape_string() is used to prepare text data too be save in an SQL Record Column.<br>And the data being wrint to that column does not exist.<br><br> 

Перейти к mysqli_driver.php к линии № 315 и положи на отметке в Фрон команды для подавления предупреждения.

От:

mysqli_real_escape_string() 

To:

@mysqli_real_escape_string() 

Если значение вы спасаясь целое, а затем использовать intval() вместо того, чтобы:
Это превратит NULL в Ноль

$var = intval($var); 
+0

Я просто искал всю папку проекта и не вижу файла с именем mysqli_driver.php. –

+0

этот файл существует на основе codeigniter? –

+0

В итоге я нашел его, большое спасибо! Я не знаю, почему, когда я использовал поиск сублимов, этот файл не появился. в любом случае вы спасатель жизни, спасибо. –

0

Вместо скрытие предупреждения с @, убедитесь, что conn_id не является ложным:

изменения

$str = mysqli_real_escape_string($this->conn_id, $str); 

как тот

if($this->conn_id){ 
    $str = mysqli_real_escape_string($this->conn_id, $str); 
} 
0

Моим решением было инициализировать соединение, если оно не доступно. Изменить строку # 315:

if ($this->conn_id === FALSE) 
{ 
    $this->initialize(); 
} 
$str = mysqli_real_escape_string($this->conn_id, $str); 
0

я тоже встретил эту проблему. Решение Wolfgang хорошо работает для меня.

И если вы используете codeIgniter, измените конфигурацию базы данных $db['default']['autoinit'] = TRUE; также может решить проблему.

Смежные вопросы