2014-09-19 45 views
-1

所以我有一個查詢插入一些信息到表中。我的問題是我使用'默認'條目插入一個自動遞增的數字連同表中的其他信息。MySQLi - 如何獲取行插入到表

我使用mysqli_query()將信息插入表中。我的問題是,搜索和搜索後,每個人似乎都在使用'PDO'或其他不符合我使用的代碼的東西。

我可以使用mysqli_insert_id找出剛剛提交的auto_incremented號碼嗎?如果是這樣怎麼能使用它?這是我所插入信息當前代碼...

mysqli_query($sql, "INSERT INTO tableposts(id, name, location) VALUES (DEFAULT, '$name', '$location')") or die(mysqli_error($sql));

所以,我需要找出ID。它應該自動遞增。請幫忙嗎?

+3

你必須在手動讀? http://php.net/manual/en/mysqli.insert-id.php – 2014-09-19 18:16:34

+1

當使用'mysqli'時,你應該使用參數化查詢和['bind_param'](http://php.net/manual/en/ mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值來實現此目的,因爲您將創建嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 – tadman 2014-09-19 18:56:52

回答

1

試試這個例子:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "INSERT INTO tableposts(id, name, location) VALUES (DEFAULT, '$name', '$location')"; 
$mysqli->query($query); 

printf ("New Record has id %d.\n", $mysqli->insert_id); 

/* close connection */ 
$mysqli->close(); 
+0

感謝您的回覆。你的方法是我見過的很多,但不遵循我一直使用的相同語法。雖然Praveen Kavuri是一種可行的方法。 – Dan 2014-09-19 20:40:51