mysqli_select_db mysqli_fetch_array mysql_query ejemplos consultas consulta con php mysqli wampserver php-7.1

mysqli_fetch_array - PHP 7.1.x-mysqli_connect no está definido(la extensión está activada)



mysqli php ejemplos (1)

Fondo

Primero, un poco sobre la forma en que WAMPServer maneja los archivos php.ini . Si usa phpinfo() , puede observar que la ruta al archivo ini cargado NO es el archivo ini en la instalación de PHP. En cambio, apunta a la instalación de Apache.

Pero si lo miras, es un enlace simbólico de 0 0KB . Lo que realmente es es un enlace a un archivo ini en la instalación de PHP. Pero no es el php.ini , sino que apunta a phpForApache.ini . Así que esto:

.../wamp64/bin/apache/apache2.4.23/bin/php.ini

es en realidad

.../wamp64/bin/php/php[VERSION]/phpForApache.ini

Entonces, puedes ignorar lo que está en la carpeta Apache y enfocarte en tus archivos ini en la carpeta PHP. Sin embargo, no puede ignorar el php.ini . Debes corregir ambos.

Felicitaciones a Jon Stirling por sugerir comprobar el archivo de configuración cargado en phpInfo() .

Lo que hice

Instalé PHP 7.1 desde el sitio web de PHP y olvidé transferir mis archivos ini desde la instalación de PHP 7.0. En su lugar, utilicé los archivos ini predeterminados proporcionados por el sitio web de PHP.

Eso no funcionó, porque hay ajustes en los archivos ini que se necesitan para que PHP funcione con WAMP. Así que copié los dos archivos ini de mi carpeta 7.0.x, y luego comenzó a funcionar, en su mayoría, excepto por el error con mysqli.

Causa raíz de mi problema

Después de arañar esto durante una hora, la última pregunta de Fred-ii- finalmente me llevó a la respuesta. Tenía PHP tratando de hacer referencia a viejos archivos de extensión. Aquí es por qué:

El archivo php.ini y el archivo phpForApache.ini , proporcionado por WAMP, codifican algunas rutas. Por ejemplo, la ruta de la carpeta de extensiones para PHP 7.0.10 está codificada de la siguiente manera:

extension_dir ="c:/wamp64/bin/php/php7.0.10/ext/"

Copié los archivos ini , pero estaban apuntando a la carpeta de extensión para 7.0. Los archivos dll para 7.0.x no funcionan con 7.1.x.

Responder

phpForApache.ini a los dos archivos ( php.ini phpForApache.ini ) en la carpeta PHP 7.1.4 y reemplacé globalmente todas las instancias del texto "7.0.10" por "7.1.4". Y ahora todo está funcionando.

Fondo

Tengo el servidor WAMP (3.0.6) instalado en mi computadora con Windows 10. Estoy desarrollando un sitio de WordPress usando algunas tablas personalizadas de MySQL, así que estoy usando $wpdb .

Problema

Me estaba ejecutando en PHP 7.0.10, y todo estaba bien. Esta mañana, instalé PHP 7.1.4, y de repente obtuve este error:

Error fatal: error no detectado: llamada a la función indefinida mysql_connect () en ... / wp-includes / wp-db.php: 1573

Indagué en él y __construct() el problema hasta la función __construct() , y esta declaración if :

if ( function_exists( ''mysqli_connect'' ) ) {

Un var_dump me mostró que function_exists( ''mysqli_connect'' ) devuelve false .

No es la respuesta

El problema NO es que no tenga habilitada la extensión mysqli :

Cosas que he probado

He cambiado de nuevo a 7.0.x (y el error desapareció), eliminé 7.1.4, reinstalé 7.1.4 y volví a conectarlo. Todavía no funciona.

Intenté 7.1.0, y no funciona.

Intenté activar y desactivar la extensión, y eso no cambia nada.

Intenté copiar el archivo php_mysqli.dll actual del php_mysqli.dll de trabajo 7.0.10, en el directorio 7.1.4, y eso no funciona.

Editar

Por solicitud, agregué capturas de pantalla de lo que se muestra en phpinfo() . En 7.0, veo la sección de información para mysqli, y debajo de 7.1, falta la sección.