There are instances where the PHP function – get_results will not work on CentOS (this maybe the case with other Linux based operating systems as well). I faced this issue while deploying a project on CentOS which was originally developed on Windows. All my INSERT, UPDATE
and DELETE
database statements were working properly, but bulk SELECT
statements had issues. Closer inspection narrowed down the problem to the get_results
function.
I came across this on the get_results
PHP documentation page –
MySQL Native Driver Only
Available only with mysqlnd.
I was able to determine if mysqlnd
driver was installed using this post on StackOverflow as reference. As expected, it wasn’t.
Here’s the relevant php
code from the StackOverflow post –
<?php
$mysqlnd=function_exists('mysqli_fetch_all');
if($mysqlnd) {
echo 'mysqlnd enabled!';
}
Now that I new that we needed to install the mysqlnd
driver, here are the steps that I followed to get the mysqlnd
driver working on CentOS,
// First remove the existing MySQL driver
yum --enablerepo=remi,remi-test remove php-mysql
// Then go ahead and install mysqlnd
yum --enablerepo=remi,remi-test install php-mysqlnd
// Restart httpd
/sbin/service httpd restart
// If you have phpMyAdmin, re-install it so that it uses the new MySQL driver
yum remove phpMyAdmin
yum install phpMyAdmin
After installing the mysqlnd
driver the get_results
function worked just fine.