2012-02-11 18 views
6

Sto tentando di utilizzare il nuovo server di sviluppo in PHP 5.4. Funziona phpinfo() bene, ma sul mio codice sito e anche phpMyAdmin.php essi stanno gettando il seguente errore:Il server di sviluppo PHP 5.4 non riconosce mysql_connect()

Call to undefined function mysql_connect()

Sono in esecuzione attraverso localhost: 8000

php -m sta dimostrando che mysqlnd è caricato, ma che forse non abbastanza .

Il sistema operativo è Windows 7

Qualche idea?

+0

Ciao Bob. Devi spiegare la tua situazione un po 'meglio. Quale stack di sviluppo stai correndo? Ad esempio usando XAMPP o WAMP o altro? "Il nuovo server di sviluppo": dobbiamo sapere cosa significa per aiutare. – Relequestual

+1

@Relequestual: Intende il server Web PHP 5.4 integrato: http://php.net/manual/en/features.commandline.webserver.php Questo server Web è progettato solo per scopi di sviluppo e non deve essere utilizzato in produzione. – Mike

risposta

12

mysqlnd è la libreria che può essere utilizzato da PHP 5.3, invece di libmysql, da 3 estensioni PHP:

  • mysql, che fornisce le mysql_* funzioni,
  • mysqli, che fornisce le funzioni mysqli_*,
  • e pdo_mysql, che consente di utilizzare PDO con un database MySQL.

mysqlnd di per sé non esportare qualsiasi funzione è possibile utilizzare dai vostri script PHP: fornisce solo la connettività MySQL per quei 3 estensioni - che sono quelli che esportano funzioni utilizzabili.


Se si desidera utilizzare le mysql_* funzioni, è necessario assicurarsi che l'estensione mysql è abilitato, con qualcosa che whould simile a questa in uno dei file .ini analizzato da PHP:

extension=mysql.dll 


Come sidenote: le mysql_* funzioni non devono essere utilizzate più, soprattutto per i nuovi progetti: l'estensione mysql è vecchio, e non permette di usare recente (noi ll, non quello più recente, in realtà) caratteristiche di MySQL.

Invece, dovresti usare mysqli o PDO.

+0

Grazie, avevo bisogno di ottenere i file mysql.dll e mysqli.dll collegati nel php.ini. Tutto funziona bene ora. –

2

È perché register_globals non è più incluso in PHP5.4, nelle versioni precedenti era deprecato e si poteva forzarlo. Il motivo è perché lascerebbe enormi lacune di sicurezza da sfruttare per gli hacker.

Problemi correlati