3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
在大多數(shù)語言(包括 PHP)中,后面的任何內(nèi)容=
(賦值運(yùn)算符)都會(huì)在存儲(chǔ)到給定變量之前進(jìn)行計(jì)算。賦值運(yùn)算符=
后面的任何內(nèi)容;
都會(huì)被解析為表達(dá)式,并且該表達(dá)式可能包含函數(shù)調(diào)用。這些函數(shù)調(diào)用會(huì)立即計(jì)算,并且這些函數(shù)調(diào)用的結(jié)果將用于表達(dá)式的其余計(jì)算。
在您的情況下,mysqli_query()
調(diào)用函數(shù)并插入行,然后將返回的值存儲(chǔ)mysqli_query()
在變量中$insert
。評(píng)估語句時(shí)不會(huì)調(diào)用它if
。
關(guān)于您的錯(cuò)誤處理問題,每個(gè)連接一次運(yùn)行 1 個(gè)查詢,因此,如果您有多個(gè)查詢,則需要運(yùn)行一個(gè)查詢,然后檢查錯(cuò)誤并連續(xù)執(zhí)行此操作。
mysqli_error()
另外,就像 @Dharman 提到的那樣,您應(yīng)該謹(jǐn)慎使用,因?yàn)槌悄啦⑶矣幸粋€(gè)經(jīng)過深思熟慮的用例,否則不希望在生產(chǎn)中使用它。

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
您正在調(diào)用mysqli_query
并將結(jié)果存儲(chǔ)在$insert
. 由于您使用的是插入語句,$insert
因此將包含 hasTRUE
或FALSE
,具體取決于插入語句是否成功。

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
每個(gè)連接一次能夠處理一個(gè)查詢;這就是 MySQL 和其他客戶端-服務(wù)器風(fēng)格的數(shù)據(jù)庫系統(tǒng)的工作方式。mysqli API 設(shè)計(jì)者決定通過連接對(duì)象而不是查詢對(duì)象來訪問錯(cuò)誤。這是一個(gè)合理的決定;通常,像您這樣的應(yīng)用程序必須在運(yùn)行新查詢之前處理錯(cuò)誤,因此在查詢對(duì)象上保留錯(cuò)誤意義不大。
錯(cuò)誤由mysqli_query()
返回的返回值表示為假。如果它返回正確,你就可以用它做更多的事情。如果您不確定“假”和“真”,請(qǐng)查閱它們。
但是,從根本上講,這些決定是 API 設(shè)計(jì)者盡最大努力創(chuàng)建有用的 API 所做出的決定。
(當(dāng)然,您確實(shí)mysqli_query()
在代碼示例中使用了..)
- 3 回答
- 0 關(guān)注
- 196 瀏覽
添加回答
舉報(bào)