1. 程式人生 > >PHP TP5 連線postgres資料庫,獲取新增資料主鍵值

PHP TP5 連線postgres資料庫,獲取新增資料主鍵值

TP5 文件中::說明:新增資料,如果要獲取新增資料的自增ID 

1.     使用Model,可以使用下面的方式:

$user           = new User;
$user->name     = 'thinkphp';
$user->email    = '[email protected]';
$user->save();
// 獲取自增ID
echo $user->id;

注意這裡其實是獲取模型的主鍵,如果你的主鍵不是id,而是user_id的話,其實獲取自增ID就變成這樣:

$user           = new User;
$user->name     = 'thinkphp';
$user->email    = '
[email protected]
'; $user->save(); // 獲取自增ID echo $user->id;

2.      使用Db,新增資料後如果需要返回新增資料的自增主鍵,可以使用getLastInsID方法:
Db::name('user')->insert($data);
$userId = Db::name('user')->getLastInsID();

或者直接使用insertGetId方法新增資料並返回主鍵值:

Db::name('user')->insertGetId($data);

insertGetId 方法新增資料成功返回新增資料的自增主鍵


====================================================================
在我使用中

 一、       使用 postgresql 或 oracle等資料庫,想獲取新增資料,如果要獲取新增資料的ID 

因為上述資料庫主鍵生成策略,採用 sequence 方式

我在實際使用過程中用model中 save($data,false,'user_id_seq') 方法,並不能得到新增主鍵

只有使用Db 操作 ,能得到新增資料的主鍵值

        $userId = Db::name('user')->insertGetId($data,false,'user_id_seq');

        Db::name('consumer')->insert($data);
        $userId = Db::name('user')->getLastInsID('user_id_seq');


=====================================================================

二、        使用 Mysql,SQL Server 資料庫,因為採用identity(自增主鍵生成機制)。

        如果要獲取新增資料的自增ID ,就可以按照文件的說明來

1.     使用Model  和   2.      使用Db    都沒有問題

相關推薦

PHP TP5 連線postgres資料庫獲取新增資料

TP5 文件中::說明:新增資料,如果要獲取新增資料的自增ID  1.     使用Model,可以使用下面的方式: $user = new User; $user->na

php抓取網頁內容獲取網頁資料

php通過simple_html_dom實現抓取網頁內容,獲取核心網頁資料,將網頁資料寫入本地 xxx.json 檔案 其程式碼實現邏輯: 1. 引入simple_html_dom.php檔案       require_once 'simple_ht

【Mybatis】資料插入資料庫獲取自增

在mybatis的XML檔案時,配置useGeneratedKeys和KeyProperty屬性,且這兩個屬性不能省略。 useGeneratedKeys屬性,要求資料庫本身具備主鍵自動增長的功能。

使用 Mybatis 的 generator 生成 xml 檔案獲取自增

使用 Mybatis 的 generator 生成 xml 檔案時候,在操作 sql 進行增加操作時候,發現並不會返回自

Mybatis generator 自動生成程式碼時 insert如何返回

mvn mybatis-generator:generate 如果要讓generator自動新增該功能,可以如下配置: <!-- tableName:用於自動生成程式碼的資料庫表;domainObjectName:對應於資料庫表的javaBean類名;不需要生成Ex

當執行插入語句之後我想返回的三種方法。

環境:ssm資料庫:oracle第一種已經實現的:也是百度上最常見的方法在mybatis層:在insert標籤中插入(主鍵是通過sequence的形式生成的)<!-- keyProperty目標屬性 --><selectKey keyProperty="id

Java連線HBASE資料庫建立一個表刪除一張表修改表輸出插入修改資料刪除資料獲取顯示錶資訊過濾查詢分頁查詢地理hash

準備工作 1、建立Java的Maven專案 建立好的目錄結構如下: 另外注意junit的版本,最好不要太高,最開始筆者使用的junit4.12的,發現執行的時候會報錯。最後把Junit的版本改成4.7的之後,問題解決了。 編寫POM檔案 <

nodejs連線Access資料庫出現Error: Spawn C:\WINDOWS\SysWOW64\cscript.exe error Java專案生成可執行jar包、exe檔案以及在Windows下的安裝檔案

因為集成了第三方的資料庫,所以需要獲取資料庫的資料 使用 var connection = ADODB.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+config.id_path+';');  

Jmeter連線mysql資料庫並使用查詢到的資料

Jmeter怎樣配置連結到mysql,在這一篇: https://www.cnblogs.com/brigth-9V/p/8657987.html 對於得到的查詢結果,直接把某一列的值用到foreach控制器裡,進行迴圈。 1、配置JDBC的請求,每列都可以直接放到變數裡: 現在A代表的是name列

php用pdo操作資料庫進行分頁時$pageSize出現錯誤怎麼回事

在用pdo操作資料庫的時候,一定要注意傳參得順序, 比我我這裡傳參順序錯了,弄了一個半小時才解決: // 分頁的演算法 public function pages($page, $pageSize = 2) { $count = $this->c

JDBC(1)-連線MySQL資料庫及其基本概念

1、首先的知道這麼個事情sun公司提供了JDBC(用於執行SQL語句的Java API),但是JDBC不能直接操作資料庫,(“JDBC它只是一堆介面,沒有實現所以沒有具體操作資料庫的內容”),所以要使用JDBC操作資料庫,還需要各大資料庫廠商提供的JDBC驅動程式(也就是說sun提供了這麼一個介面,

nodejs學習(三)--express連線mysql資料庫mysql查詢封裝

一、說一下   連線不同的資料庫需要安裝相應的外掛,此demo使用mysql資料庫,需自行安裝mysql資料庫軟體。   新建資料庫webapp,   新建表users:    二、直接開碼 npm install mysql --save   註釋:安裝mysql依賴包,儲存在本專案

易語言如何連線遠端伺服器上的資料庫並讀取資料

用易語言來連線遠端伺服器上的資料庫,可以使用支援庫中的方法。 連線資料庫方法名: 連線mysql(伺服器地址,使用者名稱,密碼,資料庫名,埠號) 注意:連線mysql()這個方法名,如果沒有,單擊工具欄中的 工具--->支援庫配置  然後全選,確定匯入。這時有這個

解決django無法連線postgres資料庫的問題

問題描述 部署程式碼的時候使用了docker,並將postgres的5432埠開啟。之後擔心這個會有安全問題,於是就將資料庫的埠關閉。重新啟動服務的時候出現了django.db.utils.OperationalError: FATAL: pg_hba.conf

Eclipse連線MySql資料庫兩個問題的解決

在正確安裝完MySQL和Eclipse各種配置好了後,嘗試用網路上的程式碼連線資料庫 網路程式碼如下: import java.sql.*; public class TestJDBC { public static void main(String args[])

問題雜談:解決連線MySQL資料庫執行緒休眠導致過滿的問題“too Many Connection”

在開發Web應用時,可以自行處理資料連線,也可以交由所使用的Web框架管理。前段時間有人問我,為什麼自己已經將的資料連線事務交由Spring管理了,但在使用過程中還是總是出現“too Many Connection”的報錯。我在解決過程中發現了一些值得注意的地方,所以在這總結

postgresql從入門到菜鳥(六)libpq連線postgres資料庫

上一期講了一些如何通過jdbc連線postgresql資料庫,這一期準備說一說如何通過libpq連線postgresql資料庫。 上一期的jdbc是postgresql的java語言應用程式介面,這一期的libpq對應的是postgresql的C語言應用程式介面。 這裡依舊分為三個模

連線mysql資料庫報錯mysqli_select_db() expects parameter 1 to be mysqli, string given

mysqli_select_db() expects parameter 1 to be mysqli, string given 如下圖: 查了查, 主要原因時mysql_select_db()與my

PHP常見面試題 程式功能設計】先寫一個線上留言本實現使用者的線上留言功能留言資訊儲存到資料庫要求書籍資料表內容以及使用PHP編碼完成。

一、考點 1、資料表設計 分析資料表結構 留言板有哪些資訊需要儲存? 留言資訊:ID,留言標題,留言內容,留言時間,留言人 2、資料表建立語句 // 留言本表 message create table message( id int unsign

連線ORACLE資料庫是不是必須要安裝oracle客戶端的執行時

大神給的回答: net連線oracle使用的是oci介面,必須安裝oracle客戶端,並配置本地網路服務名 tnsnames.ora。不過oracle網站有精簡版的客戶端軟體,不到30M吧,解壓,並編輯tnsnames.ora既可。很是方便,不用安裝700M左右的客戶端 ,而且安裝後還不好解除安裝。如果是j