Acabo de actualizar a PHP 7 solo para encontrar que WordPress 4.8.1 (última versión) todavía usa mysql_connect en el módulo wp-db.php, pero mysql_connect ha quedado en desuso.
El siguiente código está tomado de wp-db-php, líneas 1567-1571:
if ( WP_DEBUG ) {
$this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
} else {
$this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this>dbpassword,
$new_link, $client_flags);
}
Aquí está el resultado cuando intento ejecutar mi programa:
Error fatal: Error no detectado: Llamada a la función indefinida mysql_connect () en D: \ ApacheHtdocs \ ConneXions \ wp-includes \ wp-db.php: 1570 Seguimiento de
pila:
# 0 D: \ ApacheHtdocs \ ConneXions \ wp-includes \ wp- db.php (658): wpdb-> db_connect ()
# 1 D: \ ApacheHtdocs \ ConneXions \ wp-includes \ load.php (404): wpdb -> __ construct ('root', '', 'connexions', ' localhost ')
# 2 D: \ ApacheHtdocs \ ConneXions \ wp-settings.php (106): require_wp_db ()
# 3 D: \ ApacheHtdocs \ ConneXions \ wp-config.php (104): require_once (' D: \ ApacheHtdocs. .. ')
# 4 D: \ ApacheHtdocs \ ConneXions \ wp-load.php (37): require_once (' D: \ ApacheHtdocs ... ')
# 5 D: \ ApacheHtdocs \ ConneXions \ wp-blog-header.php (13): require_once ('D: \ ApacheHtdocs ...')
# 6 D: \ ApacheHtdocs \ ConneXions \ index.php (17): require ('D: \ ApacheHtdocs ...')
# 7 {main} incluido en D: \ ApacheHtdocs \ ConneXions \ wp-includes \ wp-db. php en línea 1570
No puedo creer que WordPress diga que recomienda PHP 7, pero no funciona con él. ¿Que me estoy perdiendo aqui?

mysql_connectsolo se usa como reserva cuandomysqlino se detecta. Parecería que haya ningunomysqliomysqlinstalado (mysqlise recomienda,mysqles obsoleto)Respuestas:
Parece que no tiene mysqli instalado y / o habilitado en su servidor. IIRC
mysqlise agregó a php en la versión 5.5, y lamysqlextensión anterior había quedado en desuso y se retiró por completo desde entonces. Si actualizó desde una versión PHP muy antigua, es posible que aún necesite el paso adicional de habilitarmysqli.(WordPress comprueba la existencia de
mysqliy solo si no existe prueba lasmysqlfunciones más antiguas ).fuente
Además de la respuesta @MarkKaplun, publico un código de la clase wpdb:
Así es como
wpdb::use_mysqlise determina:Está inicializado con:
y luego en el
wpdbconstructor tenemos:fuente
Lo que debe hacer para resolver este problema es editar su archivo php.ini.
corre donde se
php.iniencuentra el mío en:/etc/php/php.ini(aunque no sé qué sistema operativo está ejecutando, simplemente encuentre el suyo)Busque estos dos archivos:
y descomentarlos. Voila, eso haría el trabajo en cualquier momento.
Lectura adicional: https://wiki.archlinux.org/index.php/PHP
fuente
¿Estás usando Xamppp 7.x para Windows?
Me sucedió cuando actualicé mi Xampp 5.6 a Xampp 7.1. Al inspeccionar el archivo de configuración C: \ Xampp \ php \ php.ini , noté muchos errores relacionados con el nombre de las extensiones PHP (carecen del prefijo php_ y el sufijo .dll). Uno de ellos está relacionado con mysqli.
La configuración incorrecta que encontré allí:
La configuración correcta (después de editar esta línea):
Corregir eso resolvió mi problema.
Por cierto: no olvide corregir todas las demás configuraciones incorrectas (el nombre correcto de las extensiones se puede ver en C: \ xampp \ php \ ext).
fuente