PHP Classes

mysqli_fetch_array

Recommend this page to a friend!

      PHP MySQL to MySQLi  >  All threads  >  mysqli_fetch_array  >  (Un) Subscribe thread alerts  
Subject:mysqli_fetch_array
Summary:mysqli_fetch_array gives Notice and Warning
Messages:6
Author:Heinz Ernst
Date:2015-09-24 14:01:41
 

  1. mysqli_fetch_array   Reply   Report abuse  
Picture of Heinz Ernst Heinz Ernst - 2015-09-24 14:01:41
Hello Dave
In my original script I have the following code:
***********************************************
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
.....some result-code here
}
***********************************************
And I get back the following message:

Notice: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' in D:\xampp-5-6\xampp\htdocs\friedhof1\mainnav.php on line 15

Warning: mysqli_fetch_array() expects parameter 2 to be long, string given in D:\xampp-5-6\xampp\htdocs\friedhof1\includes\mysql2i.class.php on line 140

What do I have to change?
Thanks in advance
Heinz

  2. Re: mysqli_fetch_array   Reply   Report abuse  
Picture of Dave Smith Dave Smith - 2015-09-24 15:10:16 - In reply to message 1 from Heinz Ernst
Looks like the predefined fetch constants went away with the MySQL extension, so we need to add them. I put them in the mysql2i.func.php file, just before the first function...

//predifined fetch constants
define('MYSQL_BOTH',MYSQLI_BOTH);
define('MYSQL_NUM',MYSQLI_NUM);
define('MYSQL_ASSOC',MYSQLI_ASSOC);


Dave

  3. Re: mysqli_fetch_array   Reply   Report abuse  
Picture of Steve Lawson Steve Lawson - 2016-07-08 21:12:27 - In reply to message 1 from Heinz Ernst
I will assume that this issue is occurring because you switched from PHP 7.0 from PHP 5.x. If so, the deprecated mysql_???? functions are no longer supported. You must use the mysqli_???? functions, instead. I think this also may be true in PHP 5.5 and above, but not sure.

So,

mysql_fetch_array($result, MYSQL_ASSOC));

becomes

mysqli_fetch_array($result, MYSQLI_ASSOC));

Note the inclusion of 'i' in the function name and the inclusion of 'I' in the constant name.


  4. Re: mysqli_fetch_array   Reply   Report abuse  
Picture of Steve Lawson Steve Lawson - 2016-07-08 21:14:39 - In reply to message 2 from Dave Smith
"...so we need to add them. I put them in the mysql2i.func.php file, just before the first function..."

This is unadvised! An update could easily break this!! See my other reply.

  5. Re: mysqli_fetch_array   Reply   Report abuse  
Picture of Dave Smith Dave Smith - 2016-07-09 04:06:22 - In reply to message 4 from Steve Lawson
The concept behind the package is to provide a simple method that will allow code written with the mysql extension to continue to operate in PHP 7.

I have always recommended that the problem code be updated, which is what you are also suggesting. That said, there are situations where legacy code may not get updated right away, if ever, so this package will pick up the load and keep that legacy code from breaking.

Since the legacy code will not operate in PHP 7, it is highly advised that anyone using this package as a stop gap redefine the constants that will be missing in PHP 7.

Once any legacy code has been updated to the mysqli extension, this package is no longer needed.

Dave

  6. Re: mysqli_fetch_array   Reply   Report abuse  
Picture of Ezequiel Ezequiel - 2018-01-13 13:53:46 - In reply to message 2 from Dave Smith
Thaxs! Dave! It's work!