2016-12-09 2 views
-1

Ich habe damals CodeIgniter 2 verwendet und hatte keine Probleme, aber jetzt benutze ich CodeIgniter 3 und habe Probleme mit mysql und mysqli für meinen Code.Probleme mit mysql und mysqli

Mein Code ist:

<?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); ?> 

Fehlermeldungen:

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

und

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

Weiß jemand, wie man es beheben?

+0

Es gibt nichts mit Codeigniter zu tun ist, wenn Sie diesen Code auch in Kern PHP wird es denselben Fehler geben würde. Da die MySQL-Erweiterung nicht mehr verfügbar ist, beginnen Sie mit mysqli oder PDO –

+0

Wenn Sie [this] (http://php.net/manual/en/function.mysql-query.php) betrachten, sieht es so aus, als würde mysql_query false erzeugen bei einem Fehler bei Verwendung von 'select'. –

Antwort

0

Nun, Ihr Fehler scheint zu sagen, dass die Version von PHP, die Sie verwenden, mit mysqli arbeitet. Bitte ersetzen Sie alle mysql Anweisungen durch mysqli Aussagen.

Wie für Ihren zweiten Fehler, scheinbar mysql_fetch_array empfängt einen booleschen Wert, false. Es scheint, dass Ihre Abfrage fehlschlägt und false zurückgibt, von dem Sie versuchen, ein Array abzurufen. Fügen Sie diese Codezeile zu Ihrem Programm hinzu und veröffentlichen Sie die Ausgabe so bald wie möglich, damit ich sie möglicherweise debuggen kann.

` 
//after the mysql_fetch_array statement 

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

können Sie diesen folgenden Code verwenden, um Ihr Problem zu lösen

<?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); 
?>