我想把PHP的
mysqli_prepare
及其查詢過程中需要用到的方法封裝到我自己寫的類裡面去,但是遇到這個問題:
我寫的
query()
函數接收
sql
,
charset
,
params
參數,其中
sql
參數使用預留位置以便進行預先處理,
params
參數是一個數組,是用來綁定預留位置的參數的的數組。
那麼問題來了,預留位置與參數的綁定是利用
mysqli_stmt::bind_param()
函數去綁定的,官方的文檔說是這樣使用的:
prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");$stmt->bind_param('sssd', $code, $language, $official, $percent);$code = 'DEU';$language = 'Bavarian';$official = "F";$percent = 11.2;?>
我不知道我接收的數組的長度(即使用不定參數也不知道),那我要怎樣才能綁定參數呢?
如果用if
或者switch
去判斷,然後根據相應長度去調用的話,會不會太麻煩,而且不可能包含所有的情況。
所以應該怎樣去封裝預先處理查詢的一系列方法呢?
回複內容:
我想把PHP的mysqli_prepare
及其查詢過程中需要用到的方法封裝到我自己寫的類裡面去,但是遇到這個問題:
我寫的query()
函數接收sql
,charset
,params
參數,其中sql
參數使用預留位置以便進行預先處理,params
參數是一個數組,是用來綁定預留位置的參數的的數組。
那麼問題來了,預留位置與參數的綁定是利用mysqli_stmt::bind_param()
函數去綁定的,官方的文檔說是這樣使用的:
prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");$stmt->bind_param('sssd', $code, $language, $official, $percent);$code = 'DEU';$language = 'Bavarian';$official = "F";$percent = 11.2;?>
我不知道我接收的數組的長度(即使用不定參數也不知道),那我要怎樣才能綁定參數呢?
如果用if
或者switch
去判斷,然後根據相應長度去調用的話,會不會太麻煩,而且不可能包含所有的情況。
所以應該怎樣去封裝預先處理查詢的一系列方法呢?