首先感謝您的幫助,我問如何從左側開始將數據插入字段?根據實體有時候,最後幾個字段留空,但我需要將填充字段插入表中。如果我嘗試這樣做,我顯然會遇到列值不匹配錯誤。MYSQL - 從左邊插入INTO
謝謝!
首先感謝您的幫助,我問如何從左側開始將數據插入字段?根據實體有時候,最後幾個字段留空,但我需要將填充字段插入表中。如果我嘗試這樣做,我顯然會遇到列值不匹配錯誤。MYSQL - 從左邊插入INTO
謝謝!
只要指定唯一的字段名稱,你此刻會插入:
INSERT INTO table (field1, field2, field3) VALUES (value1, value2, value3)
或這樣
INSERT INTO table SET field1=value1, field2=value2, field3=value3
無論是從左,右或方格
如SQL查詢只是一個字符串,你可以使用一些PHP代碼以你想要的方式構建這個字符串。
hereis在非常簡單的輔助函數的形式的示例代碼,以產生動態SET語句:
function dbSet($fields) {
$set='';
foreach ($fields as $field) {
if (isset($_POST[$field])) {
$set.="`$field`='".mysql_real_escape_string($_POST[$field])."', ";
}
}
return substr($set, 0, -2);
}
它可以通過$fields
陣列來控制。 這樣使用
//if we have full set of data
$fields = explode(" ","name surname lastname address zip fax phone");
$query = "INSERT INTO $table SET ".dbSet($fields);
//if we have only three fields ready
$fields = explode(" ","name surname lastname");
$query = "INSERT INTO $table SET ".dbSet($fields);
但你迫切需要學習基本的PHP字符串操作,可以自己做這樣的事情。
字符串操作在PHP中最爲重要,因爲幾乎PHP的每個任務都只是像您的情況那樣進行字符串操作。
使用querys像
insert into table set col1=val1, col2=val2;
或
insert into table(col1, col2) values(val1, val2);
也就是說它周圍的唯一途徑。我認爲方法2是最常用的。
如果您有任何方法可以爲每列提供默認值,請將它們用於沒有值的列。
您使用的列數和您嘗試插入的值的數量必須匹配。您可以指定要插入的內容,因此不必傳遞不需要的列(因此不需要傳遞「空白」)。
INSERT INTO Store_Information (store_name, Sales, Date)
VALUES ('Los Angeles', 900, 'Jan-10-1999')
如果所有的數據可以是 「NULL」,你可以設置與變量,如果沒有設置,爲NULL,例如查詢:
$col1 = null; $col2 = null; $col3 = null; $col4 = null; $col5 = null;
然後填充您需要的列 $col1 = 'val1'; $col2 = 'val2';
$query = "INSERT INTO (col1, col2, col3, col4, col5) VALUES ($col1, $col2, $col3, $col4)";
真心我永遠不會使用這樣的東西......但你要求它...
請注意,您必須修復值爲 – MiPnamic 2011-03-24 09:24:32
mysql_query("INSERT INTO People (First_Name, Last_Name, Age)
VALUES ('Marcus', 'Porter', '28')");
mysql_query("INSERT INTO People (First_Name, Last_Name, Email)
VALUES ('Marcin', 'Kruk', '[email protected]')");
的引號因爲雙「(」),第二個查詢將生成一個錯誤。 – 2011-03-24 09:25:30
我不明白你在問什麼,你能告訴我們你到目前爲止的代碼嗎? – 2011-03-24 09:15:30
請澄清你的問題。 – 2011-03-24 09:16:29
如果您在同一個表中有不同實體的字段數量可變,那麼您的設計可能會得到改進。 – Matt 2011-03-24 09:19:02