Mysqli: No index used in query/prepared statement

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mysqli: No index used in query/prepared statement

    Hallo. Ich habe ein Problem mit Mysqli.
    PHP-Code:
    <?php
    mysqli_report
    (MYSQLI_REPORT_ALL);
    $v mysqli_connect('...');
    mysqli_query($v'SELECT `id` FROM `bilderarchive`');
    ?>
    Das Script gibt folgende Fehlermeldung aus:

    Warning: mysqli_query() [function.mysqli-query]: No index used in query/prepared statement SELECT `id` FROM `bilderarchive` in C:\pfad\temp.php on line 4
    Ich nehme an, das ich etwas mit dem INDEX ändern muss. Ich hatte bei meinen bisherigen Versuchen aber keinen Erfolg.
    Wie kann ich die Fehlermeldung unterbinden bzw. wie muss ich meine MySQL Struktur ändern?

    Code:
    CREATE TABLE `bilderarchive` (
      `id` smallint(5) unsigned NOT NULL auto_increment,
      `titel` varchar(50) collate latin1_general_ci NOT NULL,
      `url` varchar(120) collate latin1_general_ci NOT NULL,
      `klicks` mediumint(8) unsigned NOT NULL default '0',
      `ratec` mediumint(8) unsigned NOT NULL default '0',
      `rate` mediumint(8) unsigned NOT NULL default '0',
      `datum` varchar(20) collate latin1_general_ci NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=41 ;

  • #2
    Das ist nur eine Warnung, kein fataler Fehler. Das Script sollte trotz der Meldung weiterlaufen.

    Die Ausgabe von Warnings unterdrückt man mit entsprechendem error_reporting.

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      Das ist nur eine Warnung, kein fataler Fehler. Das Script sollte trotz der Meldung weiterlaufen.

      Die Ausgabe von Warnings unterdrückt man mit entsprechendem error_reporting.
      Danke für deine Hilfe. Aber das Verändern des Fehler Levels, zeigt die Meldung ja nur nicht mehr an. Ich wüsste gerne eine "richtige" Lösung für das Problem

      Kommentar


      • #4
        Tja es tut mir leid, aber es gibt einfach keine Lösung, denn es liegt kein Fehler vor. Deine Query benutzt keinen Index, weil du alle Datensätze haben möchtes. MySQL flusht dir einfach Tupel für Tupel die ganze Tabelle raus, dazu braucht es keinen Index.

        Selbst ein WHERE 1 oder ähnliches wird (sollte) dir da nicht helfen, denn ein ordentlicher Query Optimizer erkennt solchen Unsinn.

        Aber statt error_reporting solltest du den Fehlerlevel lieber spezifisch anpassen, also mit mysqli_report. Das hab ich vorhin überlesen ...

        Kommentar


        • #5
          OK, habe nun mysqli_report() geändert. Schade. Danke für dein Hilfe.

          Kommentar

          Lädt...
          X