Fatal error: Uncaught Error: Call to undefined funzione mysql_connect()

Sto cercando di fare un semplice collegamento con XAMPP e il server MySQL, ma ogni volta che cerco di inserire i dati o la connessione al database, ottengo questo errore.

Fatal error: Uncaught Error: Call to undefined funzione mysql_connect() in C:\xampp\htdocs\register.php:22
Stack trace: #0 {main} gettato in C:\xampp\htdocs\register.php on line 22

Esempio di linea 22:

$link = mysql_connect($mysql_hostname , $mysql_username);
  • passato il codice completo.
  • per Favore, non utilizzare mysql_* funzioni nel nuovo codice. Non sono più mantenuti e sono ufficialmente deprecato. Vedi la red box? Imparare istruzioni preparate, invece, e utilizzare DOP o MySQLi.
  • <?php $mysql_hostname = “il mio ip”; $mysql_username = “root”; $mysql_password = “”; $mysql_database = “polizia”; $db = mysql_connect($mysql_hostname , $mysql_username) or die(“problema di Connessione Con SQL. Nome host , nome utente O la Password sono sbagliati!”); mysql_select_db($mysql_database,$db) or die(“impossibile connettersi alla base dati! controllare le credenziali”); mysql_connect($mysql_hostname , $mysql_username) ?>
  • Cambiare mysql_connect($mysql_hostname , $mysql_username) a mysql_connect($mysql_hostname , $mysql_username, $mysql_password) . Inoltre, passare a DOP o MySQLi!
  • in caso che io non uso una password sul phpmyadim ? (cercando di fare tutte quelle cose lontane giusta causa ho bisogno del cellulare per essere in grado di connettersi al database)
  • Se vi imbattete in questo errore con il legacy CodeIgniter, utilizzare questo in config/database.php: 'dbdriver' => 'mysqli', (cambia mysql per mysqli.

InformationsquelleAutor Demeteor | 2016-01-03

 

9 Replies
  1. 105

    mysql_* funzioni sono state rimosse in PHP 7.

    Probabilmente avete PHP 7 in XAMPP. Ora avete due alternative: MySQLi e DOP.

    Inoltre, qui è una bella pagina di wiki su DOP.

  2. 34

    È possibile utilizzare mysqli_connect($mysql_hostname , $mysql_username) invece di mysql_connect($mysql_hostname , $mysql_username).

    mysql_* funzioni sono state rimosse PHP 7. Ora avete due alternative: MySQLi e DOP.

    • Altre modifiche al codice è probabile che sia necessaria, però.
    • Su Ubuntu 16.04, questo ha richiesto la php7.0-mysql pacchetto. Come @ceejayoz dice, ci sono in realtà diverse API modifiche necessarie, e non solo per i nomi di funzione, ma l’ordine di argomenti. Molto frustrante.
    • Rozzo, ma ha funzionato per me, almeno finché non ho ottimizzare il mio codice con DOP connessione
  3. 20

    Si consiglia di utilizzare il MySQLi o PDO estensioni. Si raccomanda di non utilizzare il vecchio mysql, per un nuovo sviluppo, come è stato deprecato in PHP 5.5.0 ed è stata rimossa in PHP 7.

    PHP offre tre diverse Api per la connessione a MySQL. Qui di seguito vi mostriamo le Api fornite da mysql, mysqli, e DOP estensioni. Ogni frammento di codice crea una connessione ad un server MySQL in esecuzione sul “example.com” utilizzando il nome utente “username” e la password “password”. E viene eseguita una query per salutare l’utente.

    Esempio #1 Confrontando le tre Api di MySQL

    <?php
    //mysqli
    $mysqli = new mysqli("example.com", "username", "password", "database");
    $result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
    $row = $result->fetch_assoc();
    echo htmlentities($row['_message']);
    
    //PDO
    $pdo = new PDO('mysql:host=example.com;dbname=database', 'username', 'password');
    $statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
    $row = $statement->fetch(PDO::FETCH_ASSOC);
    echo htmlentities($row['_message']);
    
    //mysql
    $c = mysql_connect("example.com", "username", "password");
    mysql_select_db("database");
    $result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
    $row = mysql_fetch_assoc($result);
    echo htmlentities($row['_message']);
    ?>

    Vi suggerisco di provare entrambi MySQLi e DOP e scoprire che cosa la progettazione di API che si preferisce.

    Leggere La scelta di un API e Perché non dovrei usare mysql_* funzioni in PHP?

  4. 7

    mysql_* funzioni sono state rimosse in PHP 7.

    Ora avete due alternative: MySQLi e DOP.

    Il seguente è un prima (-) e (+) confronto di alcune modifiche comuni a MySQLi, preso direttamente in codice di lavoro:

    -if (!$dbLink = mysql_connect($dbHost, $dbUser, $dbPass))
    +if (!$dbLink = mysqli_connect($dbHost, $dbUser, $dbPass))
    
    -if (!mysql_select_db($dbName, $dbLink))
    +if (!mysqli_select_db($dbLink, $dbName))
    
    -if (!$result = mysql_query($query, $dbLink)) {
    +if (!$result = mysqli_query($dbLink, $query)) {
    
    -while ($row = mysql_fetch_array( $result, MYSQL_ASSOC )) {
    +while ($row = mysqli_fetch_array( $result, MYSQLI_ASSOC )) {
    
    -mysql_close($dbLink);
    +mysqli_close($dbLink);
  5. 7

    Altre risposte suggeriscono… Qualche ragazzo (per qualsiasi motivo) ha deciso che il vecchio codice non funziona quando si esegue l’aggiornamento di PHP, perché sa meglio di voi e non importa che cosa il vostro codice o come è semplice per aggiornare.

    Bene, se non è possibile aggiornare il vostro progetto durante la notte si può

    downgrade della versione di PHP per qualunque versione che ha lavorato

    o…

    utilizzare un supporto (tipo di polyfill) come https://github.com/dshafik/php7-mysql-shim o https://github.com/dotpointer/mysql-shim, e poi trovare un posto per include_once("choice_shim.php"); da qualche parte nel codice

    Che manterrà il vostro vecchio codice PHP e in esecuzione fino a quando avete voglia di aggiornare…

  6. 1

    Hai quell’errore perché il mysql_connect funzione (in realtà, tutti mysql_* funzioni) sono stati rimossi dal PHP 7. È ora possibile utilizzare MySQLi o DOP.

    Esempio:

    $mysqli = new mysqli($hostname, $username, $password, $database);
  7. 1

    Assicurarsi di non aver commesso un errore di battitura, come nel mio caso

    msyql_fetch_assoc dovrebbe essere mysql

  8. -1

    Per mysqli è possibile utilizzare :

    $db = ADONewConnection(‘mysqli’);


    $db->execute(“set names ‘utf8′”);

Lascia un commento