Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema connessione Database

    Ho un database chiamato nazioni dove c'è una tabella countries fatta da due colonne: ID e VALUE in cui ci sono tutte le nazioni del mondo.

    Voglio usare questo file.php per connettermi e prendere le nazioni da un form che, con l'ausilio di jquery mi da la lista delle nazioni in base alle prime lettere inserite.

    Qui trovate l'esempio: http://nodstrum.com/2007/09/19/autocompleter/

    Codice PHP:
    <?php

        
    // PHP5 Implementation - uses MySQLi.
        // mysqli('localhost', 'yourUsername', 'yourPassword', 'yourDatabase');
        
    $db = new mysqli('localhost','root','','nazioni');

        if(!
    $db) {
            
    // Show error if we cannot connect.
            
    echo 'ERROR: Could not connect to the database.';
        } else {
            
    // Is there a posted query string?
            
    if(isset($_POST['queryString'])) {
                
    $queryString $db->real_escape_string($_POST['queryString']);

                
    // Is the string length greater than 0?

                
    if(strlen($queryString) >0) {
                    
    // Run the query: We use LIKE '$queryString%'
            // The percentage sign is a wild-card, in my example of countries it works like this...
                    // $queryString = 'Uni';
                    // Returned data = 'United States, United Kindom';

        // YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE.
        // eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE '$queryString%' LIMIT 10

        
    $query $db->query("SELECT value FROM countries WHERE value LIKE '$queryString%' LIMIT 10");
                    if(
    $query) {
            
    // While there are results loop through them - fetching an Object (i like PHP5 btw!).
                        
    while ($result $query ->fetch_object()) {
                            
    // Format the results, im using[*] for the list, you can change it.
                            // The onClick function fills the textbox with the result.

                            // YOU MUST CHANGE: $result->value to $result->your_colum
                             
    echo '<li onClick="fill(\''.$result->value.'\');">'.$result->value.'';
                         }
                    } else {
                        echo 
    'ERROR: There was a problem with the query.';
                    }
                } else {
                    
    // Dont do anything.
                
    // There is a queryString.
            
    } else {
                echo 
    'There should be no direct access to this script!';
            }
        }
    ?>
    Il problema è che mi da FATAL ERROR: Cannot Instantiate non-existent class: msqli in <file.php> on line 5

    Ho pensato che può essere un problema di compatibilità di MYSQL 5. Io uso MYSQL 4.1.9

    Come posso risolvere il problema?

    Grazie.

  2. #2
    Non è un problema di MySQL 5 o 4.

    Qui utilizzi un oggetto, ovvero MySQLi che probabilmente esegue una connessione SQL su MySQLi (ovvero un estensione particolare di MySQL).

    Puoi seguire due strade, anzi tre:

    1) editare la classe DB che utilizzi nello script
    2) scrivere una tua classe DB compatibile con MySQL 4
    3) non utilizzi nessuna classe e crei tutto in quel file.
    Sviluppatore CI

    NettusLab Weblog

  3. #3
    ma in pratica cosa fa questa stringa?

    Codice PHP:
    $db = new mysqli('localhost','root','','nazioni'); 
    si connette al database? cosa assegna a db?

    questo non mi è chiaro...

    Grazie...

  4. #4
    La stringa associa alla variabile $db il costruttore della classe db dopo averla istanziata; passa i 4 valori che il costruttore della classe gestirà ed eseguirà la connessione al database
    Sviluppatore CI

    NettusLab Weblog

  5. #5
    in pratica manca la parte di connessione al database?

    non ci sono altri modi per risolvere facilmente il problema?

  6. #6
    La parte di connessione al database è gestita dalla classe DB, che tu includi nel tuo codice.

    Le soluzioni te le ho poste sopra.
    Sviluppatore CI

    NettusLab Weblog

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.