Toon posts:

[php/msyql] Controleren of de update gelukt is

Pagina: 1
Acties:
  • 52 views sinds 30-01-2008

Verwijderd

Topicstarter
goede middag allemaal

ik wil controleren of een update query is gelukt. Zodra die niet gelukt is, moet ie een insert uitvoeren.

ik heb dit, maar het wil iet echt werken:
code:
1
2
if (mysql_query("update query") === FALSE)
  mysql_query("insert query");


heb ff die queries eruit gehaald.
Dit werkt alleen als er een syntax fout staan in de update query.

Is het mogelijk wat ik wil, zoja hoe. Of wat doe ik fout...

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Het is beter om deze twee queries in een transactie te steken.

Transacties kun je in PHP afdwingen door de 'autocommit'-propertie van uw connectie op FALSE te zetten

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Heeft MySQL zo geen ranzige UPDATE INSERT statement ofzo?

Ik ben niet vertrouwd met MySQL , maar ik dacht dat ik hier zo eens iets gelezen had.... Een statement dat een update doet, en als er niets up te daten is, gaat ie inserten.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Feyd-Rautha schreef op 20 August 2003 @ 16:23:
Het is beter om deze twee queries in een transactie te steken.

Transacties kun je in PHP afdwingen door de 'autocommit'-propertie van uw connectie op FALSE te zetten
Een transactie is hier niet van toepassing. Ofwel moet de update query uitgevoerd worden, ofwel de INSERT.
Het is niet zo dat, als een statement mislukt, alles moet gerollbacked worden.

https://fgheysels.github.io/


Verwijderd

Topicstarter
hey whoami, bedankt....
nu kan ik misschien begrijpen hoe dit werkt :)
code:
1
2
mysql> INSERT INTO table (a,b,c) VALUES (1,2,3)
   --> ON DUPLICATE KEY UPDATE c=c+1;


zo eens proberen

vette pech... werkt niet :(

ON DUPLICATE KEY UPDATE clause (new in MySQL 4.1.0)
en daar is helaas nog een "productie versie" van :(

[ Voor 29% gewijzigd door Verwijderd op 20-08-2003 16:35 ]


  • mjax
  • Registratie: September 2000
  • Laatst online: 28-07 20:20
whoami schreef op 20 augustus 2003 @ 16:25:
Heeft MySQL zo geen ranzige UPDATE INSERT statement ofzo?

Ik ben niet vertrouwd met MySQL , maar ik dacht dat ik hier zo eens iets gelezen had.... Een statement dat een update doet, en als er niets up te daten is, gaat ie inserten.
Inderdaad het REPLACE statement. Syntax is identiek aan INSERT, maar er wordt een UPDATE uitgevoerd als een record met dezelfde key al bestaat. Je kunt het ranzig noemen, maar ik vind het erg handig voor sommige toepassingen.

Verwijderd

Topicstarter
ah.. replace stament...

even naar kijken

UPDATE:
heeft geen zin voor mij. Ik wil namelijk tellen, daarom moet ik updaten. Maar de query "replace (blaat) values (blaat+1)" doet niet veel meer als alleen 1 opslaan :(

offtopic:
tweakers is wel traag en krijg veel kan server niet vinden fouten !!

[ Voor 92% gewijzigd door Verwijderd op 20-08-2003 17:01 ]


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 23:34
PHP:
1
2
3
mysql_query("UPDATE....");
if(mysql_affected_rows() == 0)
  mysql_query("INSERT...");


mysql_affected_rows(); geeft het aantal getroffen rijen van de laatste UPDATE of DELETE query. Wanneer dit 0 is, is er dus niets geupdate.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Dit is toch echt manual werk, hoor :)

Zie http://www.php.net/mysql

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.