Hallo,
Folgendes:
- ich mache ein "INSERT"
- ich beziehe die lastinsertid via "mysql_insert_id()"
- ich benutze diese für ein datei-prefix
Was aber, wenn eine anderer thread zwischen "INSERT" und getLastInsertID"
ebenfalls ein "INSERT" ausführt (Stichwort: thread-safe) , bzw. wie geht php
damit um, oder wie muss ich damit umgehen ?
ist hier ein lock_table sinnvoll ?
[PHP/MySQL] mysql_insert_id(); + lock_table ?
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
[PHP/MySQL] mysql_insert_id(); + lock_table ?
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.
... und Wasser ist naß.
Hm, nach der MySQL-Doku
Naeheres findest du hier: http://www.mysql.org/doc/refman/4.1/en/ ... rt-id.html
sollte kein extra Table-Lock noetig sein.The value of mysql_insert_id() is affected only by statements issued within the current client connection. It is not affected by statements issued by other clients.
Naeheres findest du hier: http://www.mysql.org/doc/refman/4.1/en/ ... rt-id.html
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
also ist es so, daß ich persistente verbindungen habe ?
hier mal ein ausschnitt:
Ich denke nicht, oder ? Es wird ja bei jedem include ein db_connect aufgerufen.
Wie kann ich denn eine verbindung bei "session.isNew = true" aufbauen
und wie kann ich diese verbindung an die session binden ?
hier mal ein ausschnitt:
Code: Alles auswählen
require 'config.inc.php';
function _connectDB() {
global
$MYSQL_HOST,
$MYSQL_USER,
$MYSQL_PWD,
$MYSQL_DB,
$db_connection;
$db_connection = mysql_connect(
$MYSQL_HOST,
$MYSQL_USER,
$MYSQL_PWD)
or die("MYSQL-Error:".mysql_error());
mysql_select_db($MYSQL_DB)
or die("MYSQL-Error: select db");
}
_connectDB();
function _doSimpleQuery($query) {
return mysql_query($query)
or die(mysql_error());
}
Wie kann ich denn eine verbindung bei "session.isNew = true" aufbauen
und wie kann ich diese verbindung an die session binden ?
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.
... und Wasser ist naß.
Hm, wenn du die einmal geoeffnete Verbindung zugemacht hast, dann bringt dir mysql_insert_id() eh nix mehr. Du musst diese Funktion direkt nach einem INSERT aufrufen.
Wenn du eine persistente Datenbankverbindung willst, dann musst du mysql_pconnect() benutzen. Siehe auch http://de2.php.net/manual/de/features.p ... ctions.php
Wenn du eine persistente Datenbankverbindung willst, dann musst du mysql_pconnect() benutzen. Siehe auch http://de2.php.net/manual/de/features.p ... ctions.php