2014-05-20 34 views
2

指定mysqli bind_param類型有什麼優點和缺點i,d,s,b指定mysqli bind_param類型

我將UNIX時間戳存儲在數據類型爲INT的db列中。在我準備好的聲明中,我將它設置爲bind_param('s',$timestamp);,它存儲的值沒有任何問題。那麼在bind_param期間,我使用s而不是i是什麼影響?

+2

您是否閱讀過手冊? => http://www.php.net/manual/en/mysqli-stmt.bind-param.php –

+0

@ Fred-ii-是的,我沒有找到我的答案。也許你可以指出,因爲我很愚蠢。 –

+0

不要這樣下去。這是愚蠢的,不問問題;-) –

回答

3

它影響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的轉換規則中。