2016-09-23 5 views
0

PDO aktuelle IDs aus verschiedenen Tabellen erhalten?

I changed the order and it worked. Like this: 
 

 
$sql_b = "INSERT INTO h_baslik (h_baslik_t) VALUES ('$hbaslik')"; 
 
$sql_s = "INSERT INTO h_spot (h_spot_t) VALUES ('$hspot')"; 
 
$sql_m = "INSERT INTO h_metin (h_metin_t) VALUES ('$hmetin')"; 
 
$sql_r = "INSERT INTO h_resim (h_resim_url) VALUES ('$hresim')"; 
 

 

 
$conn->exec($sql_b); 
 
$hbaslik_id = $conn->lastInsertId(); 
 
$conn->exec($sql_s); 
 
$hspot_id = $conn->lastInsertId(); 
 
$conn->exec($sql_m); 
 
$hmetin_id = $conn->lastInsertId(); 
 
$conn->exec($sql_r); 
 
$hresim_id = $conn->lastInsertId(); 
 
$sql_h = "INSERT INTO haberler (baslik, spot, metin, resim, kat_id, yayin_zamani, onay) VALUES ('$hbaslik_id', '$hspot_id', '$hmetin_id', '$hresim_id', '$hkat', '$htarih', '$honay')"; 
 
$conn->exec($sql_h);

hier ist der Code, den ich so viele verschiedene Stile ausprobiert. Ich möchte Nachrichteninhalt z. "Inhalt" Tabelle. News Titel zu "Titeln" -Tabelle. und dann möchte ich IDs dieser Datensätze zu meiner "News" -Tabelle als int Wert (IDs) bekommen. Wie kann ich das mit PDO machen?

+0

Bitte fügen Sie nicht Dinge wie "Gelöst" auf den Titel. Wenn Sie eine Lösung gefunden haben, markieren Sie diese als akzeptiert. – tadman

+0

** WARNUNG **: Bei Verwendung von PDO sollten Sie [vorbereitete Anweisungen] (http://php.net/manual/en/pdo.prepared-statements.php) mit Platzhalterwerten verwenden und alle Benutzerdaten als separate Argumente angeben . In diesem Code haben Sie möglicherweise schwerwiegende [SQL-Injektionsfehler] (http://bobby-tables.com/). Verwenden Sie niemals Zeichenketteninterpolation oder Verkettung und verwenden Sie stattdessen [prepared statements] (http://php.net/manual/en/pdo.prepared-statements.php) und legen Sie niemals '$ _POST' oder' $ _GET' Daten direkt in Ihren Abfrage. In [PHP The Right Way] (http://www.phptherightway.com/) finden Sie Hinweise zu diesem und anderen Problemen. – tadman

Antwort

1

Die Funktion lastInsertId() gibt die zuletzt eingefügte ID der Verbindung zurück. Sie müssen also die ID nach jedem Einfügen holen.

$sql_b = "INSERT INTO h_baslik (h_baslik_t) VALUES ('$hbaslik')"; 
$sql_s = "INSERT INTO h_spot (h_spot_t) VALUES ('$hspot')"; 
$sql_m = "INSERT INTO h_metin (h_metin_t) VALUES ('$hmetin')"; 
$sql_r = "INSERT INTO h_resim (h_resim_url) VALUES ('$hresim')"; 

$sql_h = "INSERT INTO haberler (baslik, spot, metin, resim, kat_id, yayin_zamani, onay) VALUES ('$hbaslik_id', '$hspot_id', '$hmetin_id', '$hresim_id', '$hkat', '$htarih', '$honay')"; 

$conn->exec($sql_b); 
$hbaslik_id = $conn->lastInsertId(); 
$conn->exec($sql_s); 
$hspot_id = $conn->lastInsertId(); 
$conn->exec($sql_m); 
$hmetin_id = $conn->lastInsertId(); 
$conn->exec($sql_r); 
$hresim_id = $conn->lastInsertId(); 

$conn->exec($sql_h); 

PDO::lastInsertId on php.net

+0

Vielen Dank. Ich dachte es aber vergessen zu tun :) Danke nochmal –

+0

Es gibt ein Problem. Es wird "0" für lastInsertId() –

Verwandte Themen