 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
02.01.2005, 23:49
|
#1
|
|
TP-Supporter
Registriert seit: Apr 2001
|
AUTO_INCREMENT zählte nicht hoch
Hallo,
ich hatte jetzt ein ganz reizendes Problem mit einer MySQL-Tabelle und bin nicht dahintergestiegen, woran es letztlich lag. Doch würde es mich schon interessieren.
Folgendes:
Ich habe eine ganz einfache Tabelle names Bilder1. Hier speichere ich die Pfade zu den jeweilig upgeloadeten Fotos. Die Tabelle läuft seit geraumer Zeit ganz problemlos.
Nur gestern kam plötzlich diese Fehlermeldung
PHP-Code:
Fehler
SQL-Befehl :
INSERT INTO `bilder1` ( `id` , `berichtid` , `bild` , `kommentar` , `adate` )
VALUES (
'', '89', '3', '', '0000-00-00'
);
MySQL meldet:
Doppelter Eintrag '127' für Schlüssel 1.
Hier mal das Dump mit dem letzten Datensatz
PHP-Code:
# phpMyAdmin MySQL-Dump
# version 2.5.1
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Erstellungszeit: 02. Januar 2005 um 20:37
# Server Version: 4.0.13
# PHP-Version: 4.3.2
# Datenbank: `xxxx`
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `bilder1`
#
# Erzeugt am: 02. Januar 2005 um 20:36
# Aktualisiert am: 02. Januar 2005 um 20:36
#
CREATE TABLE `bilder1` (
`id` tinyint(6) NOT NULL auto_increment,
`berichtid` tinyint(10) NOT NULL default '0',
`bild` tinyint(4) NOT NULL default '0',
`kommentar` varchar(250) NOT NULL default '',
`adate` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=127 ;
#
# Daten für Tabelle `bilder1`
#
[...]
INSERT INTO `bilder1` VALUES (127, 89, 2, '', '0000-00-00');
Theoretisch müsste es sich nu doch auf TYPE=MyISAM AUTO_INCREMENT=128 hochschrauben. Tat es aber nicht, deshalb auch die Meldung.
Ich war die Fehlersuche irgendwann leid und habe nu die Tabelle geleert und alle 127 Datensätze mit neuer Aufzählung eingefügt und dann war der Zustand des automatischen Hinzuzählens der id wieder hergestellt.
Trotzdem, hat jemand dies schon mal gehabt?
__________________
Liebe Grüße, die Judi!
|
|
|
02.01.2005, 23:56
|
#2
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Naja... tinyint kann nunmal nicht mehr als 128!
Gruss
Jan
|
|
|
03.01.2005, 00:51
|
#3
|
|
TP-Supporter
Registriert seit: Apr 2001
|
__________________
Liebe Grüße, die Judi!
|
|
|
03.01.2005, 02:13
|
#4
|
|
TP-Veteran
Registriert seit: Jun 2004
Ort: Stuttgart
|
ausserdem sollte man nicht ein autoincrement leer übergeben, das verwirrt doch nur 
das 'id' beim insert kannste auch weglassen und brauchst nur die einzufüllen, die notwendig sind.
|
|
|
03.01.2005, 09:41
|
#5
|
|
TP-Supporter
Registriert seit: Apr 2001
|
Huhu
hilf mir doch noch mal kurz, wo habe ich die id leer übergeben?
Ich speichere nie eine autoincrement-id beim insert
Obwohl ich da mal gelesen habe, dass dies gar nicht so korrekt sein soll, sondern default eine 0 mit gegeben werden kann.
Ist schon so, wie stuck mojo geschrieben, ich war mal wieder zu blöd zum nachsehen. 
__________________
Liebe Grüße, die Judi!
|
|
|
03.01.2005, 10:12
|
#6
|
|
TP-Moderator
Registriert seit: Jan 2004
Ort: Bayern, Regensburg
|
Zitat:
INSERT INTO `bilder1` ( `id` , `berichtid` , `bild` , `kommentar` , `adate` )
VALUES (
'', '89', '3', '', '0000-00-00'
);
|
Hier hast du die id übergeben mit einem leeren Wert. 
|
|
|
03.01.2005, 10:37
|
#7
|
|
TP-Supporter
Registriert seit: Apr 2001
|
Achso
das war doch die Fehlermeldung und nicht beabsichtigt. Er konnte ja keinen Wert mehr hinzufügen, da 127 ja erreicht war.
Ich bin echt unschuldig, ich schwörs
Um weiteren Spekulationen vorzubeugen, normal sieht mein Statement so aus
PHP-Code:
$myfile = substr($strFileName,-4);
$gesamtfile = $verzeichnis."_".$num.$myfile;
$path="bilder";
if($_POST[db]=="nein"){
$gesamtfile = $verzeichnis."_".$num."_p".$myfile;
$path = "pic";
}
if($_POST[db]=="ja"){
$sql = "insert into bilder (berichtid,bild) Values ('$verzeichnis','$num')";
mysql_query($sql);
}
__________________
Liebe Grüße, die Judi!
Geändert von Judi (03.01.2005 um 10:43 Uhr).
|
|
|
03.01.2005, 16:52
|
#8
|
|
TP-Veteran
Registriert seit: Jun 2004
Ort: Stuttgart
|
achso, na dann hab ich nix gesagt 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:09 Uhr.
|
 |