2016-09-23 15 views
0

PDO獲取當前從不同表中添加的id?

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);

這裏是我嘗試了許多不同風格的代碼。 我想將新聞內容添加到例如「內容」表。新聞標題爲「標題」表。然後我想把這些記錄的ids'作爲int值(ids)寫到我的「新聞」表中。我如何用PDO做到這一點。

+0

像 「解決」 的標題請不要添加的東西。如果您發現解決方案標記的答案已被接受。 – tadman

+0

**警告:當使用PDO時,您應該使用帶有佔位符值的[prepared statements](http://php.net/manual/en/pdo.prepared-statements.php),並提供任何用戶數據作爲單獨的參數。在此代碼中,您可能會遇到嚴重的[SQL注入漏洞](http://bobby-tables.com/)。切勿使用字符串插值或連接,而應使用[準備語句](http://php.net/manual/en/pdo.prepared-statements.php),並且絕對不要將'$ _POST'或'$ _GET'數據直接放入您的查詢。有關此問題和其他問題的指導,請參閱[PHP正確方法](http://www.phptherightway.com/)。 – tadman

回答

1

功能lastInsertId()返回最後插入的連接ID。 所以你需要在每次插入後取回ID。

$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

非常感謝。我以爲它忘了做:)再次感謝 –

+0

有一個問題。它變爲「0」爲lastInsertId() –