• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Komisches Verhalten von pnpMyAdmin

thuemmy

Aktives Mitglied
Wenn ich folgendes sql-query mittels phpMyAdmin einfüge, wird mir von phpMyAdmin gesagt, das 0 Zeilen eingefügt wurden. Komischerweise wird aber ein Datensatz eingefügt. Hier das query:
HTML:
INSERT INTO `gaerten` 
(`nummer`, `strom`, `brunnen`, `trink`, `laubegr`, `gartengr`, `preis`, `frei`, `kostenlos`) 
VALUES (1, true, true, true, 10+4, 150+9, 600, false, false);
Daraus anscheinend resultiert dann auch ein Fehler in einem PHP-Script, in dem ich innerhalb einer Schleife 40 Einträge in die Tabelle mache.
HTML:
<?php
include("includes/dbconnect.php");
if (mysqli_connect_errno() == 0) {
  for ($i=1; $i<=40; $i++) {
    $rand1 = mt_rand(1,10);
    $rand2 = mt_rand(1,10);
    $rand3 = mt_rand(0,20)*100;
    $sql = "INSERT INTO `gaerten` ".
    "(`nummer`, `strom`, `brunnen`, `trink`, `laubegr`, `gartengr`, `preis`, `frei`, `kostenlos`) ".
    "VALUES ($i, true, true, true, 10+$rand1, 150+$rand2, $rand3, false, false);";
    echo $sql . "<br />\n"; 
    $ergebnis = $db->query($sql);
    if ($ergebnis->affected_rows == 1) {
      echo "Garten $i wurde eingefügt<br />\n";
    }
  }
$db->close();
}
else {
  echo "Fehler beim Herstellen der Datenbankverbinung";
}
?>
Für die Zeile in der ich $ergebnis->affected_rows abfrage, bekomme ich die Fehlermeldung: "Notice: Trying to get property of non-object in I:\www\kgv-neu\gartentab.php on line 13"
Die 40 Datensätze werden aber in die Tabelle eingefügt. Also quasi dasselbe Verhalten wie bei phpMyAdmin.

Vielen Dank schonmal für's durchlesen,

Gruß thuemmy
 
Danke erstmal für die Antwort. Leider sagt mysqli::error nüscht. Hab das Script an der relevanten Stelle so geändert
HTML:
    $ergebnis = $db->query($sql);
    echo "fehler->".$db->error."<br />\n";
    if ($ergebnis->affected_rows == 1) {
      echo "Garten $i wurde eingefügt<br />\n";
    }
 
Ich hab zumindest mal das Problem mit dem eigenen Script gelöst. "affected_rows" ist keine Eigenschaft vom query-Objekt, sondern vom mysqli-Objekt. Es muss also heißen:
HTML:
    if ($db->affected_rows == 1) {
       echo "Garten $i wurde eingefügt<br />\n";     
}
Und das phpMyAdmin irgendwo komisch tut habe ich eigentlich auch gelöst. Ich nutze nun statt dem MoWeS Portable den xampp portable light.

Gruß thuemmy
 
Zurück
Oben