Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    3

    Passare da Mysql a Mysqli

    Sono abbastanza inesperto, ho fatto questo script che deve interrogare molte tabelle diverse recuperate da un'altra tabella. Spero anzitutto che lo script sia corretto tuttavia mi sono accorto che per farlo girare sul server devo cambiare la sintassi perchè mysqli non è supportato. Purtroppo non conosco abbastanza bene la sintassi per farlo da solo, qualcuno sa aiutarmi?

    Questo è quello che ho scritto:
    <?php
    include "./dbconfig.php";
    $conn = mysqli_connect($host, $user, $password, $database);
    $Query1 = "SELECT Nome Tabella, Operator FROM Test";
    print '<table border="1">';
    print '<tr>';
    print '<td>ID</td>';
    print '<td>Ora_Start_In</td>';
    print '<td>Operator</td>';
    print '</tr>';
    while($riga1 = mysqli_fetch_assoc($Query1)) {
    $Nome = $riga1['Nome Tabella'];
    $Query2 = "SELECT * FROM '$Nome' INNER JOIN Test ON '$Nome'.Operator = Test.Operator";

    while ($riga2 = mysqli_fetch_assoc($Query2)) {
    print '<tr>';
    print '<td>'.$row["ID"].'</td>';
    print '<td>'.$row["Ora_Start_In"].'</td>';
    print '<td>'.$row["Operator"].'</td>';
    print '</tr>';
    }
    }
    print '</table>';
    mysqli_close($conn);
    ?>

  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    perchè mysqli non è supportato
    Abilitato allora. Mysqli è una estensione di php, controlla nel tuo php.ini di avere extension=mysqli.so (potrebbe essere commentato). Se invece ti manca proprio il modulo, allora leggi: http://php.net/manual/it/mysqli.installation.php

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    3
    Quote Originariamente inviata da .Kurt Visualizza il messaggio
    Abilitato allora. Mysqli è una estensione di php, controlla nel tuo php.ini di avere extension=mysqli.so (potrebbe essere commentato). Se invece ti manca proprio il modulo, allora leggi: http://php.net/manual/it/mysqli.installation.php
    Avevo optato per riscrivere il codice perchè al momento non so se posso mettere mano al server, lo so che sarebbe la scelta migliore

  4. #4
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Se vuoi passare alle ormai deprecate mysql_* funzioni ti basta togliere la "i" di "mysqli". "mysqli_connect" diventa "mysql_connect", e così via. Dopodichè leggi http://php.net/manual/it/function.mysql-fetch-assoc.php per sapere che argomento bisogna passargli. http://php.net/manual/it/function.mysql-query.php

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    3
    Sono riuscito a lasciare lo script in mysqli ed a lanciarlo dal portatile con una versione di Apache e Php nuova.
    Ora però mi ritorna questi errori:

    mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)
    mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, string given in C:\wamp\www\visualizza.php on line 20
    Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in C:\wamp\www\visualizza.php on line 33

  6. #6
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)
    I dati sono corretti?
    mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, string given in C:\wamp\www\visualizza.php on line 20
    Devi eseguire la query con mysqli_query e passargli la risorsa che quella funzione restituisce. Leggi la documentazione.
    Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in C:\wamp\www\visualizza.php on line 33
    Poichè mysqli_connect ti ha restituito un errore, $conn è stato valorizzato con 'false'. Ecco perchè dovresti gestire la mancata connessione con il database in qualche modo. (molti preferiscono interrompere l'esecuzione dello script)

  7. #7
    Se ti puo essere di aiuto, ho avuto lo stesso problema passando da mysql_ a mysqli_ e ho constatato che mysqli_ necessita del parametro della connessione al db a differenza di mysql_ che puoi anche ometterlo.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.