mysql和mysqli

时间:2016-12-09 04:25:16

标签: php mysql mysqli codeigniter-3

当时我正在使用CodeIgniter 2并没有遇到任何麻烦,但现在我使用的是CodeIgniter 3,并且在我的代码中遇到了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

有谁知道如何修复它?

2 个答案:

答案 0 :(得分: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)`

答案 1 :(得分: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); 
?>