2
指定mysqli bind_param類型有什麼優點和缺點i,d,s,b
?指定mysqli bind_param類型
我將UNIX時間戳存儲在數據類型爲INT的db列中。在我準備好的聲明中,我將它設置爲bind_param('s',$timestamp);
,它存儲的值沒有任何問題。那麼在bind_param
期間,我使用s
而不是i
是什麼影響?
指定mysqli bind_param類型有什麼優點和缺點i,d,s,b
?指定mysqli bind_param類型
我將UNIX時間戳存儲在數據類型爲INT的db列中。在我準備好的聲明中,我將它設置爲bind_param('s',$timestamp);
,它存儲的值沒有任何問題。那麼在bind_param
期間,我使用s
而不是i
是什麼影響?
它影響MySQL將如何看到查詢/值。如果綁定的參數作爲INT
INSERT INTO foo VALUES (?)
:取本查詢
$stmt->bind_param('i', $bar);
那麼查詢將約相當於:
INSERT INTO foo VALUES (42)
但是,如果綁定爲字符串:
$stmt->bind_param('s', $bar);
查詢將abo UT相當於:
INSERT INTO foo VALUES ('42')
在許多情況下,MySQL不會特別在意你是否向它發送一個字符串或一個int,並會簡單地把價值爲適當的類型上的蒼蠅,就如同PHP做了大部分的時間。但是,在某些情況下和某些類型的情況下,您可能會收到意外的轉換,這就是爲什麼您應該將值綁定爲您想要的類型,而不要將其保留在MySQL的轉換規則中。
您是否閱讀過手冊? => http://www.php.net/manual/en/mysqli-stmt.bind-param.php –
@ Fred-ii-是的,我沒有找到我的答案。也許你可以指出,因爲我很愚蠢。 –
不要這樣下去。這是愚蠢的,不問問題;-) –