Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Problemi nuova installazione PHP/Mysql

    Salve a tutti.
    Ho appena installato un ambiente PHP completo in una macchina di un ufficio dove ne ho necessità.

    Ho eseguito l'installazione di tutti i componenti a mano, dopo avere scaricato le ultime versioni stabili.
    Questa è la lista dei programmi che ho installato:
    • apache_2.2.6-win32-x86-no_ssl.msi;
    • php-5.2.5-win32-installer.msi;
    • mysql-essential-5.1.22-rc-win32.

    Per quello che riguarda Apace/PHP tutto funziona a dovere, ma ho problemi con MySQL.
    Da shell vedo che il server funziona senza problemi e posso eseguire query.
    Da script PHP invece non ottengo risposte, il che significa neanche errori.

    La prima prova di connessione si basa su uno script del genere:
    Codice PHP:
    <?php

    echo "
    <html>
    <head>
        <title>Prova di accesso al DB</title>
    </head>
    <body>

    <h1>Accesso al Database</h1>
    "
    ;
        
    $host "localhost";
    $user "root";
    $passwd "";
    $db_name "corso";

    echo 
    "
    <hr />
    $host

    $user

    $passwd 

    $db_name 
    <hr />"
    ;

    mysql_connect($host$user$passwd) or die("
            <hr />
            Errore Numero: "
    .mysql_errno()."
            
    Descrizione Errore: "
    .mysql_error()."
            <hr />
    "
    );
        

    echo 
    "#149; Database Connesso";

    echo 
    "
    </body>
    </html>
    "
    ;
    ?>
    Ora, se mando in esecuzione questo script (su questa macchina ho solamente IE6) ottengo solo la scritta Accesso al Database e le variabili che uso per la connessione stessa.
    Aprendo l'HTML della pagina, vedo quanto segue:
    codice:
    <html>
    <head>
    	<title>Prova di accesso al DB</title>
    </head>
    <body>
    <h1>Accesso al Database</h1>
    <hr />localhost
    
    root
    
     
    
    corso 
    <hr />
    Il che significa che lo script si blocca prima dell'esecuzione di mysql_connect, ma senza dare alcun errore.
    Come prima cosa, ho pensato che il firewall bloccasse MySQL, per cui ho già provveduto ad "aprire" la comunicazione, senza però ottenere risultati.

    C'è qualcuno che può aiutarmi a capire come mai si verifica questo strano comportamento???
    Grazie
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  2. #2
    Inserisci il seguente codice all'inizio dello script:

    Codice PHP:
    error_reporting(E_ALL);
    ini_set('display_errors'1); 

  3. #3
    Ottengo quanto segue:

    Fatal error: Call to undefined function mysql_connect() in C:\Programmi\PHP\www\accessoDB\index.php on line 27


    Possibile che non siano attive le estensioni per MySQL????

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Possibile che non siano attive le estensioni per MySQL????
    Si, controlla il file php.ini ed abilita l'estensione MySQL se non è abilitata.

  5. #5
    Rieccomi.
    Scusa se rispondo solo oggi ma sono stato fuori dall'Italia per qualche giorno e non ho più messo mano al PC in cui ho effettuato l'installazione di cui sopra.

    Allora.
    Ho controllato il php.ini e mi sembra che sia tutto a posto.
    Ti scrivo il codice che riguarda il modulo MYSQL:
    codice:
    [MySQL]
    ; Allow or prevent persistent links.
    mysql.allow_persistent = On
    
    ; Maximum number of persistent links.  -1 means no limit.
    mysql.max_persistent = -1
    
    ; Maximum number of links (persistent + non-persistent).  -1 means no limit.
    mysql.max_links = -1
    
    ; Default port number for mysql_connect().  If unset, mysql_connect() will use
    ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
    ; compile-time value defined MYSQL_PORT (in that order).  Win32 will only look
    ; at MYSQL_PORT.
    mysql.default_port =
    
    ; Default socket name for local MySQL connects.  If empty, uses the built-in
    ; MySQL defaults.
    mysql.default_socket =
    
    ; Default host for mysql_connect() (doesn't apply in safe mode).
    mysql.default_host =
    
    ; Default user for mysql_connect() (doesn't apply in safe mode).
    mysql.default_user =
    
    ; Default password for mysql_connect() (doesn't apply in safe mode).
    ; Note that this is generally a *bad* idea to store passwords in this file.
    ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
    ; and reveal this password!  And of course, any users with read access to this
    ; file will be able to reveal the password as well.
    mysql.default_password =
    
    ; Maximum time (in seconds) for connect timeout. -1 means no limit
    mysql.connect_timeout = 60
    
    ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
    ; SQL-Errors will be displayed.
    mysql.trace_mode = Off
    A me sembra corretto, però, in fondo, nella zona delle estensioni, trovo questo:
    codice:
    ; Local Variables:
    ; tab-width: 4
    ; End:
    [PHP_CURL]
    extension=php_curl.dll
    [PHP_GD2]
    extension=php_gd2.dll
    [PHP_MYSQLI]
    extension=php_mysqli.dll
    [PHP_OCI8]
    extension=php_oci8.dll
    [PHP_XMLRPC]
    extension=php_xmlrpc.dll
    [PHP_DOMXML]
    extension=php_domxml.dll
    [PHP_HTTP]
    extension=php_http.dll
    [PHP_PDF]
    extension=php_pdf.dll
    Qui non mi sembra di vedere che la DLL di mysql sia attiva.
    In ultimo, nella cartella /ext della directory di installazione di PHP non trovo la dll di mysql.
    Che abbia sbagliato qualcosa nell'installazione????

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Rieccomi e scusa se disturbo di nuovo.
    Durante tutto questo tempo ho provato a fare installazioni varie ed ottengo sempre lo stesso errore.

    Ho tentato la strada dell'installazione manuale di PHP (copiando i file in una cartella ed attivandolo come variabile globale di windows) ed anche quella dell'installazione di WAMP.

    Sempre lo stesso errore.
    Sembra proprio che PHP 5.2.5 non "veda" le librerie delle funzioni di accesso a MySQL (io il tentativo lo faccio con un semplice mysql_escape_string()).

    C'è magari qualcuno che ha il mio stesso problema????

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    prima di eseguire un mysql_real_escape_string devi attivare una connessione al db perchè quella funzione si basa sul charset della connessione...

    lo hai fatto vero?
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  8. #8
    La funzione mysql_real_escape_string() è contenuta in una funzione che ho creato io per il filtraggio degli input da form.

    Ad ogni modo, se uso mysql_connect() per attivare una connessione, ottengo comunque il medesimo errore.
    Peraltro leggo che dopo la segnalazione del WARNING mi dice che è vietato l'accesso all'utente ODBC@localhost.... ma io dovrei essere riconosciuto come root@localhost.

    Sto letteralmente sclerando... comunque ora provo ad installare XAMPP.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9

    EUREKA!

    Beh.... ho risolto senza installare nulla di che.
    È bastato spostare il file libmysql.dll dalla directory di PHP a quella di windows.

    Spero possa tornare utile a qualcuno!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    Peccato che sono arrivato adesso Alcio. Questa la sapevo.

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.