想知道是否有簡寫版本將新記錄插入啓用主鍵的表中? (即不必在查詢中包括關鍵列) 比方說鍵列,被稱爲ID,其他列FNAME,LNAME和網站PHP mySQL - 在主鍵上使用自動增量插入新記錄
$query = "INSERT INTO myTable VALUES ('Fname', 'Lname', 'Website')";
想知道是否有簡寫版本將新記錄插入啓用主鍵的表中? (即不必在查詢中包括關鍵列) 比方說鍵列,被稱爲ID,其他列FNAME,LNAME和網站PHP mySQL - 在主鍵上使用自動增量插入新記錄
$query = "INSERT INTO myTable VALUES ('Fname', 'Lname', 'Website')";
使用默認的關鍵字:
$query = "INSERT INTO myTable VALUES (DEFAULT,'Fname', 'Lname', 'Website')";
此外,您還可以指定列,(這是更好的做法):
$query = "INSERT INTO myTable
(fname, lname, website)
VALUES
('fname', 'lname', 'website')";
參考:
是的,我知道最好設置每一列。但是這張表的表格不會被改變,所以我只是好奇如何使用最少量的代碼來實現這個訣竅。謝謝! – JimmyJammed
「不會被改變」是一個非常巨大的假設。也許這是一個一次性的表格,當你完成這個當前的任務時你會放棄它,但是否則誰知道業務需求何時會以意想不到的方式發生變化。在絕大多數情況下,如果您使用帶列名的第二個表單,那麼接下來需要維護系統的人將非常感激。 – GrandOpener
我更喜歡這句法:
$query = "INSERT INTO myTable SET fname='Fname',lname='Lname',website='Website'";
+1,我也喜歡,只適用於MySQL /不能在SQLite中運行。 –
這是phpMyAdmin方法。
$query = "INSERT INTO myTable
(mtb_i_idautoinc, mtb_s_string1, mtb_s_string2)
VALUES
(NULL, 'Jagodina', '35000')";
如果你打算給PHP一個查詢,你應該真的使它成爲一個參數化查詢。 – GrandOpener
你已經得到了答案。你的例子應該按預期工作(aasuming ID是一個自動增量)。 – konsolenfreddy
@konsolenfreddy:他使用插入sytnax,要求指定每個列值。 – webbiedave
我建議不要在應用程序中插入這種類型的sytnax,因爲如果將來添加列(或更改列順序),則必須返回並更改SQL語句,即使這些列具有默認值。如果它是一次數據庫更新,那麼這沒什麼大不了的。 – webbiedave