[英]PHP PDO::lastInsertId returns 0
我在其他問題中也遇到類似的問題,但是答案還不夠: 例如
就我而言,插入內容正確,但是我無法獲取ID。 它總是返回0。 為什么呢
Script.php
$src_db_conn = database_connection( SRC_DB_HOST , SRC_DB_NAME, SRC_DB_USERNAME, SRC_DB_PASSWORD );
$target_db_conn = database_connection( TARGET_DB_HOST , TARGET_DB_NAME, TARGET_DB_USERNAME, TARGET_DB_PASSWORD );
$sql_insert_terms = "SELECT nom_cat, slug FROM src_table ";
$result = $src_db_conn->query($sql_insert_terms);
foreach ( $result as $row ){
$f_wp_terms_row = array(
'name' => $row['nom_cat'],
'slug' => $row['slug']
);
$sql_insert_terms = "INSERT INTO target_table (name, slug) VALUES (:name, :slug)";
$stmt = $target_db_conn->prepare( $sql_insert_terms );
try {
$target_db_conn->beginTransaction();
$stmt->bindParam(":name", $f_wp_terms_row['name'], PDO::PARAM_STR);
$stmt->bindParam(":slug", $f_wp_terms_row['slug'], PDO::PARAM_STR);
$stmt->execute();
print $target_db_conn->lastInsertId();
$target_db_conn->commit();
} catch(PDOExecption $e) {
$target_db_conn->rollback();
print "Error!: " . $e->getMessage() . "</br>";
}
}
database_connection php函數
function database_connection( $host, $dbname, $username, $password ){
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
return $conn;
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
return false;
}
}
target_table shema
Nom Type Attributs Extra NULL foo_id bigint(20) UNSIGNED A_I No name varchar(200) No slug varchar(200) No
我必須像這樣綁定列ID:
print $target_db_conn->lastInsertId("foo_id");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.