Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2023
    Messaggi
    2

    Problema conversione gestionale da PHP 5.6 a 8.2

    Salve a tutti, premetto che non sono un programmatore ma me la cavo nelle modifiche di codice, non a livelli eccelsi ma riesco a fare funzionare quello che serve tranne in questo caso.

    Sto migrando e di conseguenza modificando il mio gestionale da PHP 5 a PHP 8.2, ne ho gia fatto un buon 90% ma qui mi sono bloccato.

    Ho questo codice:

    Codice PHP:
    <?php
    class MySQL {
      var 
    $host;
      var 
    $user;
      var 
    $password;
      var 
    $database;
      var 
    $connessione;
      var 
    $errore;

      function 
    MySQL ($host,$user,$password,$database)
      {
        
    $this->host=$host;
        
    $this->user=$user;
        
    $this->password=$password;
        
    $this->errore=$database;
        
    $this->connessione();
      }

      function 
    connessione()
      {
        if (!
    $this->connessione = @mysqli_connect($this->host$this->user$this->password))
        {
          
    trigger_error('Impossibile connettersi a MySQL.');
          
    $this->errore=true;
        }
        elseif (!@
    mysqli_select_db($this->errore,$this->connessione))
        {
          
    trigger_error('Impossibile connettersi al database.');
          
    $this->errore=true;
        }
      }
     
      function 
    notifica_errore()
      {
        if (
    $this->errore) return true;
        
    $notifica=mysqli_error($this->connessione);
        if (empty(
    $notifica)) return false;
        else return 
    true;
      }
      
      function 
    query($sql)
      {
        if (!
    $qRes=mysqli_query($this->connessione$sql))
        
    trigger_error (
        
    'Query fallita: '.mysqli_error($this->connessione).
        
    ' SQL: '.$sql);
        return new 
    MySQLResult($this,$qRes);
      }
    }
      
    class 
    MySQLResult
    {
      var 
    $mysql;
      var 
    $query;
      function 
    MySQLResult(& $mysql,$query)
      {
        
    $this->mysql=& $mysql;
        
    $this->query=$query;
      }

      function 
    fetch()
      {
        if (
    $f=mysqli_fetch_array($this->query,mysqli_ASSOC))
        {
          return 
    $f;
        }
        elseif (
    $this->size() > 0)
        {
          
    mysqli_data_seek($this->query,0);
          return 
    false;
        }else{
          return 
    false;
        }
      }
      
      function 
    size()
      {
        return 
    mysqli_num_rows($this->query);
      }
      
      function 
    insertID()
      {
        return 
    mysqli_insert_id($this->mysql->connessione);
      }
      
      function 
    notifica_errore()
      {
        return 
    $this->mysql->notifica_errore();
      }
    }
    ?>
    Che viene richiamato con @require('mysql.php'); da index2.php

    questo codice mi da il seguente errore:

    Fatal error: Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in /membri/zippo1978/cmsassistenza2/carrello/mysql.php:47 Stack trace: #0 /membri/zippo1978/cmsassistenza2/carrello/mysql.php(47): mysqli_query(NULL, 'SELECT * FROM l...') #1 /membri/zippo1978/cmsassistenza2/carrello/index2.php(509): MySQL->query('SELECT * FROM l...') #2 {main} thrown in /membri/zippo1978/cmsassistenza2/carrello/mysql.php on line 47


    La linea 47 è
    Codice PHP:
    if (!$qRes=mysqli_query($this->connessione$sql)) 

    mentre nel file index2.php la linea 509 è
    Codice PHP:
    $res $db->query($sql); 

    che è parte del codice

    Codice PHP:
    //cerca per ean o codice 
    $ean $_POST['ean'];
    $sql "SELECT * FROM listinoaltri where ean='$ean'"  ;
    $sql2 "SELECT * FROM eancode where barcode='$ean'"  ;
    $sql3 "SELECT * FROM listifu where Cdpar='$ean'"  ;
    $sql4 "SELECT * FROM barcode where barcode='$ean'"  ;
    $res $db->query($sql);
    $res2 $db->query($sql2);
    $res3 $db->query($sql3);
    $res4 $db->query($sql4);
    $f['prezzov'] = str_replace(",""."$f['prezzov']);
    $f['Preze'] = str_replace(",""."$f['Preze']);
    while (
    $f $res->fetch())
    {
        
    $f['prezzov'] = str_replace(",""."$f['prezzov']);
      
    $result1[] = ''.$f['codice']. '';


    Mi serve una mano per risolvere questo problema, grazie

  2. #2
    Prova a rinominare il metodo MySQL::MySQL in MySQL::__construct

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2023
    Messaggi
    2
    Scusa ma MySQL::MySQL non lo vedo, potresti essere piu preciso? Grazie mille

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2023
    Messaggi
    2
    Rinominato
    Codice PHP:
    function  MySQL::__construct 
    da syntax error, unexpected token "::", expecting "(" in...
    Rinominato
    Codice PHP:
    function  MySQL __construct 
    da syntax error, unexpected identifier "__construct", expecting "(" in...
    Rinominato
    Codice PHP:
    function  __construct 
    da Declaration of MySQL::query($sql) must be compatible with mysqli::query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool in... su questa riga function query($sql)

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.