2012-02-11 31 views
6

Estoy tratando de usar el nuevo servidor de desarrollo en PHP 5.4. Se ejecuta phpinfo() muy bien, pero en mi código de sitio y también phpMyAdmin.php están tirando el siguiente error:PHP 5.4 servidor de desarrollo no reconoce mysql_connect()

Call to undefined function mysql_connect()

Ellos están ejecutando a través localhost: 8000

php -m está demostrando que mysqlnd se carga, pero que tal vez no es suficiente .

El sistema operativo es Windows 7

¿Alguna idea?

+0

Hola Bob. Debes explicar tu situación un poco mejor. ¿Qué pila de desarrollo estás ejecutando? Por ejemplo, usando XAMPP o WAMP u otro? "El nuevo servidor de desarrollo" - Necesitamos saber qué significa eso para ayudar. – Relequestual

+1

@Relequestual: Se refiere al servidor web incorporado PHP 5.4: http://php.net/manual/en/features.commandline.webserver.php Este servidor web está diseñado solo para fines de desarrollo, y no debe utilizarse en producción. – Mike

Respuesta

12

mysqlnd es la biblioteca que se puede utilizar a partir de PHP 5.3, en lugar de libmysql, por 3 extensiones PHP:

  • mysql, que proporciona los mysql_* funciones,
  • mysqli, que proporciona los mysqli_* functons,
  • y pdo_mysql, que permite usar PDO con una base de datos MySQL.

mysqlnd por sí mismo no exporta cualquier función se puede utilizar desde un script PHP: sólo proporciona conectividad de MySQL a esas extensiones 3 - que son los que exportan funciones que puede utilizar.


Si desea utilizar los mysql_* funciones, tiene que asegúrese de que la extensión mysql está activado, con algo que whould este aspecto en una de las .ini archivos analizados por PHP:

extension=mysql.dll 


Como nota al margen: los mysql_* funciones no debe utilizarse más, especialmente para los nuevos proyectos: la extensión mysql es viejo, y no permite que se debe usar reciente (nos ll, no tan reciente más, en realidad) características de MySQL.

En su lugar, debe utilizar mysqli o PDO.

+0

Gracias, necesitaba obtener los archivos mysql.dll y mysqli.dll vinculados en php.ini. Todo está funcionando bien ahora. –

2

Es porque register_globals ya no está incluido en PHP5.4, en versiones anteriores estaba obsoleto y puede forzarlo. La razón es porque dejaría enormes lagunas de seguridad para que los hackers exploten.

Cuestiones relacionadas