Avatar billede tvilling53 Seniormester
24. april 2017 - 18:02 Der er 2 kommentarer og
1 løsning

Behandling af MYSQLI- fejlmedelelser

Hej,
Jeg har et problem som består i at programmet skulle kunne fortsætte selv om der kommer en fejlmedelelse.
Der bruges følgende sætning til søge selv omjeg ved at tabellen ikke eksistere:

if(!($stmt=$mysqli->prepare('SELECT * FROM `'.$tabel.'` WHERE aar =? && `'.$kol1.'`=?')))
{    echo "<br>Prepare failed i HENT_DATAx i START_SQL; <br>:(".$mysqli->errno .")" .$mysqli->error;}

Dette giver, som forventet, en fejl : (1146)Table' database.table' doesn't exist.
Kan det undersøges om tabellen eksisterer inden der søges i den?? eller hvordan behandles fejlkoden så programmet ikke går død.
Håber at der en der kan hjælpe mig med en løsning..

Hilsen TV
Avatar billede arne_v Ekspert
24. april 2017 - 18:41 #1
Du kan teste paa om tabellen eksisterer med:

SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = ?
Avatar billede arne_v Ekspert
24. april 2017 - 18:43 #2
Generelt boer du nok bruge logik a la:

function hentdata
      hent data
      hvis fejl saa
            log fejl
            returner tom data
      ellers
            returner hentede data
Avatar billede tvilling53 Seniormester
25. april 2017 - 14:41 #3
Tak for hjælpen, løsningen blev:
if(!($stmt=$mysqli->prepare('SELECT * FROM `'.$tabel.'` WHERE aar =? && `'.$kol1.'`=?')))//WHERE dato >2015-11-12
        {    echo "<br>Prepare failed i HENT_DATAx i START_SQL; <br>:(".errorhandler($mysqli->errno) .")" .$mysqli->error;}

unction errorhandler($fejl)
  {
        switch ($fejl) {
        case 1146:
            Eksekverbar code
            break;

        default:
            break;
    }
   
Hilsen TV
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester