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

    Call to a member function query() on a non object

    Ciao, mi sono appena iscritto...

    ho un problema con mysqli e php

    Allora, la mia idea era quella di utilizzare due funzioni, le seguenti, una per creare la connessione e collegarmi al db e l'altra per eseguire uan query.
    Questo perchè, in base alla stringa che passo alle funzioni ($extension, con valori "mysql" o "mysqli") voglio scegliere il codice adatto all'estensione scelta.

    Codice PHP:
    function ConnectToMysqlDB($extension)
    {
    include(
    "include/dbconfig.inc.php");

    // $extension ==> 'MYSQL' o 'MYSQLi'
    switch ($extension) {
        case 
    "mysqli":
             
    $connessione = new mysqli($db_host,$db_user,$db_password,$db_name);

            
    // controllo l'esito della connessione
            
    if (mysqli_connect_errno()) $connection_error 'Error while connecting to MySql Database:'.mysqli_error();
        case 
    "mysql":
            
    $connessione = @mysql_connect($db_host,$db_user,$db_password);
            @
    mysql_select_db ($db_name,$connessione);

            if (
    trim(mysql_error()) != ""){
                
    $connection_error 'Error while connecting to MySql Database:'.mysql_error();
                return 
    false;
                }

            break;
        }

    //echo gettype($connessione)." - ".$connessione;

    return $connessione;
    }

    function 
    RunQuery($extension,$connessione,$sql_query)
    {
    // $extension ==> 'MYSQL' o 'MYSQLi'

    //echo gettype($connessione)." - ".$connessione;

    switch ($extension) {
        case 
    "mysqli":
            
    $result $connessione->query($sql_query);
            break;
        case 
    "mysql":
            
    $result = @mysql_query($sql_query,$connessione);
            break;
        }
    return 
    $result;

    Se uso mysql nessun problema, va tutto liscio, ma appena uso mysqli:

    Codice PHP:
    include("include/dbFunctions.inc.php"); // il file con le funzioni

    $connessione ConnectToMysqlDB($MysqlExt);
    $result RunQuery($MysqlExt,$connessione,$sql_query); 
    Allora, la variabile $MysqlExt ha valore "mysqli", quando chiamo RunQuery, ricevo il seguente errore:

    "Fatal error: Call to a member function query() on a non-object in C:\Programmi\Apache Group\Apache2\test\myfanart\include\dbFunctions.in c.php on line 47"

    che è la riga
    $result = $connessione->query($sql_query);

    nella funzione RunQuery

    Se invece chiamo direttamente la funzione
    $connessione = new mysqli($db_host,$db_user,$db_password,$db_name);

    fuori dalla funzione e poi chiamo RunQuery passandogli l'id di connessione $connessione, allora funziona tutto?

    Che cosa sbaglio?

    Grazie in anticipo

  2. #2
    nessuna idea vero?

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.