Tom: Brauche Hilfe You have an error in your SQL syntax

Beitrag lesen

Hello Vinzenz,

Wenn man ein SQL-Problem hat, ist PHP-Code meist nicht besonders hilfreich, aber die folgende Funktion ...

function generate_id()
{
  global $title, $description;
  $continue = true;

// Datenbankgestützte Artikel-Nummern-Verwaltung
  $num_query = "select * from numbers where id='1'"; // 1 = Nummernkreis für Auktions-Nummern
  $num_result = mysql_query($num_query);
  $auction_id = mysql_result($num_result,0,"value");
  $next_num = intval($auction_id) + 1;
  mysql_query("update numbers set value=$next_num");

return $auction_id;
}

ist fehleranfällig ohne Ende und sollte *nicht* angewandt werden. Verwende AUTO_INCREMENT und LAST_INSERT_ID() bzw. den PHP-Wrapper zu letzterer.

gib azrailbey, oder wie sie sich auch nennt, doch wenignstens auch ein Stichwort dazu, warum die Funktion Unsinn ist :-)

http://en.wikipedia.org/wiki/Time-of-check-to-time-of-use
http://de.wikipedia.org/wiki/Nebenläufigkeit

(schlechte) Abhilfe durch:
http://dev.mysql.com/doc/refman/5.1/de/lock-tables.html

Außerdem ist es meistens kontrproduktiv, Funktionlitäten, die das DBMS schon bereitstellt, nochmals neu zu erfinden...

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de