2016-12-09 1 views
-1

Я использовал CodeIgniter 2, и у меня не было никаких проблем, но теперь я использую CodeIgniter 3 и имею некоторые проблемы с mysql и mysqli для моего кода.Получил некоторые проблемы с mysql и mysqli

Мой код:

<?php  

$query_i = "select MAX(Id_Product) from products"; 
$result_i = mysql_query($query_i); 
$data2 = mysql_fetch_array($result_i); 

$MaxID = $data2[0]; 

$temp = (int)substr($MaxID,2,4); 
$temp++; 

$NewID = "P".sprintf("%04s",$temp); ?> 

сообщения об ошибках:

mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead 

и

mysql_fetch_array() expects parameter 1 to be resource, boolean given 

Кто-нибудь знает, как это исправить?

+0

Там нет ничего общего с Codeigniter, если вы используете этот код даже в основной PHP будет будет давать такую ​​же ошибку. Поскольку расширение MySQL больше не доступно, начните с использования mysqli или PDO –

+0

. Глядя на [this] (http://php.net/manual/en/function.mysql-query.php), похоже, что 'mysql_query' будет генерировать false по ошибке при использовании 'select'. –

ответ

0

Ну, ваша ошибка, похоже, говорит, что версия PHP, которую вы используете, работает с mysqli. Пожалуйста, замените все заявления mysql заявлениями mysqli.

Что касается вашей второй ошибки, то, видимо, mysql_fetch_array получает логическое значение, false. Кажется, что ваш запрос терпит неудачу и возвращает false, из которого вы пытаетесь получить массив. Добавьте эту строку кода в свою программу и опубликуйте результат как можно скорее, чтобы я мог его отладить.

` 
//after the mysql_fetch_array statement 

var_dump($query_i) 
var_dump($result_i) 
var_dump($data2)` 
0

Вы можете использовать следующий код, чтобы решить вашу проблему

<?php 
$sql="select MAX(Id_Product) from products"; 
$result=mysqli_query($con,$sql); 

// Numeric array 
$row=mysqli_fetch_array($result,MYSQLI_NUM); 

$MaxID = $row[0]; 
$temp = (int)substr($MaxID,2,4); 
$temp++; 
$NewID = "P".sprintf("%04s",$temp); 
?>