你好,用sql語句是不可能實(shí)現(xiàn)的,我們可以通過事務(wù)來實(shí)現(xiàn),也就是說,SqlCommand的CmdText屬性在一個(gè)方法當(dāng)中可以賦多個(gè)SQL語句 SqlConnection sqlConnection = new SqlConnection(); ...初始化連接 // 開啟事務(wù) SqlTransaction sqlTransaction = sqlConnection.BeginTransaction(); // 將事務(wù)應(yīng)用于Command SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = sqlConnection; sqlCommand.Transaction = sqlTransaction; sqlCommand.CmdText=第一個(gè)sql語句 sqlCommand.ExcuteNoneQuery(); sqlCommand.CmdText=第二個(gè)sql語句 sqlCommand.ExcuteNoneQuert(); try { // 利用sqlcommand進(jìn)行數(shù)據(jù)操作 ... // 成功提交 sqlTransaction.Commit(); } catch(Exception ex) { // 出錯(cuò)回滾 sqlTransaction.Rollback(); } 如果在執(zhí)行第二次SQL語句是出錯(cuò)了,那么就會到Catch異常中,執(zhí)行回滾,那么第一次執(zhí)行的也同樣回滾了,所以必須2個(gè)都一行成功才往數(shù)據(jù)庫中提交這里是用了2次SQL語句,如果你想用1個(gè)語句同時(shí)操控2個(gè)表的話,就要用到存儲過程或者是觸發(fā)器,存儲過程和觸發(fā)器
創(chuàng)新互聯(lián)公司主營通川網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,通川h5成都微信小程序搭建,通川網(wǎng)站營銷推廣歡迎通川等地區(qū)企業(yè)咨詢
親,你好!
在向表中插入數(shù)據(jù),如果數(shù)據(jù)表對應(yīng)字段沒有,而你卻進(jìn)行了插入的話,報(bào)錯(cuò)是正常的呦,應(yīng)該不止tp5會報(bào)錯(cuò),其他的框架也應(yīng)該會報(bào)錯(cuò)滴!
處理以上報(bào)錯(cuò)有兩種方式:
A:如果你確實(shí)想向這個(gè)表中插入photo信息,那你就可以提前將字段加入到表中,然后再插入就不會報(bào)錯(cuò)了。如果你并不想將photo信息插入數(shù)據(jù)表,你可以在拼寫插入語句時(shí),直接就不拼入photo數(shù)據(jù)。
B:使用異常處理機(jī)制,進(jìn)行try catch 處理,當(dāng)插入報(bào)錯(cuò)時(shí),將報(bào)錯(cuò)信息插入日志中,然后手動處理錯(cuò)誤。這樣在插入失敗時(shí)就不會報(bào)錯(cuò)了,但是數(shù)據(jù)是不會插入成功的。記得TP框架的錯(cuò)誤處理好像有自己進(jìn)行封裝,你好像要改一點(diǎn)東西,但是記不清楚了。
希望可以幫到你呦!~~歡迎繼續(xù)追問!~~
// $data 為原始數(shù)組,處理得到按添加記錄排列的數(shù)組$new_data
foreach ($data as $k1 = $v1) {
foreach ($v1 as $k2 = $v2) {
$new_data[$k2][$k1] = $v2;
}
}
// 針對Mysql數(shù)據(jù)庫,可以批量添加
M("Your_Table_Name")-addAll($new_data);
// 也可以循環(huán)添加
foreach ($new_data as $v) {
M("Your_Table_Name")-add($v);
}