Seite 1 von 1
mysql update oder insert
Verfasst: Montag 4. Februar 2008, 15:01
von debian75
moin,
kann mir einer sagen, wie ich feststellen kann ob ein update geklappt hat oder nicht ?
IF db.query("update.... NICHT OK
THEN d.query("insert....)
sowas in der art ?
geht drum ein feld HITS jeweils um 1 zu incrementieren...wenn der datensatz aber nich ned existiert, muss er ja erstmal gemacht werden.
Verfasst: Montag 4. Februar 2008, 15:53
von BlackJack
Über das Attribut `rowcount` auf `Cursor`-Objekten kann man heraus finden, wie viele Zeilen bei der letzten SQL-Anweisung betroffen waren:
Code: Alles auswählen
In [235]: c.execute('update foo set bar=bar+1 where id=42')
Out[235]: <sqlite3.Cursor object at 0x9cb1bf0>
In [236]: c.rowcount
Out[236]: 1
In [237]: c.execute('update foo set bar=bar+1 where id=23')
Out[237]: <sqlite3.Cursor object at 0x9cb1bf0>
In [238]: c.rowcount
Out[238]: 0
Die `id` 23 existierte also nicht.
Verfasst: Montag 4. Februar 2008, 16:01
von debian75
danke. darf ich noch gleich ne xml frage anhängen ?
brauche element tree und hab folgende stuktur:
Code: Alles auswählen
<felder>
<feld>
<name>Eins</name
<inhalt>1</inhalt>
</feld>
<feld>
<name>Zwei</name>
<inhalt>2</inhalt>
</feld>
</felder>
ich benötige nur die zahl 2, also den inhalt. nur weiss ich nicht wie ich auf das teil zugreifen kann. find gibt das erst gefundene, und mit findall bekomm ich das auch nicht...steh grad aufm schlauch.
Verfasst: Montag 4. Februar 2008, 16:28
von gerold
Hallo debian75!
Code: Alles auswählen
>>> try:
... from elementtree import ElementTree as et
... except ImportError:
... from xml.etree import ElementTree as et
...
>>> xml = """<felder>
... <feld>
... <name>Eins</name>
... <inhalt>1</inhalt>
... </feld>
... <feld>
... <name>Zwei</name>
... <inhalt>2</inhalt>
... </feld>
... </felder>"""
>>> root = et.fromstring(xml)
>>> for feld in root.findall("feld"):
... print feld.find("inhalt").text
...
1
2
>>>
mfg
Gerold

Verfasst: Montag 4. Februar 2008, 17:11
von debian75
und nochmal danke
