在準備使用PDO的SQL查詢,應該/必須做綁定空值時應該/必須使用PDO :: PARAM_NULL嗎?
$query->bindValue('column', $value, is_null($value) ? PDO::PARAM_NULL : PDO::PARAM_STR);
或者,我可以只使用PDO::PARAM_INT
或PDO::PARAM_STR
直接,因爲PDO數字,在它自己的了呢? (因爲它真的,真的應該在我看來)
而作爲一個好奇的後續問題,如果我不必須使用PDO::PARAM_NULL
,什麼是它實際上呢?
應該很容易測試。設置一個帶有空列的表,然後執行'INSERTs'兩種方式。 –
根據函數'really_register_bound_param'的[源代碼](https://github.com/php/php-src/blob/master/ext/pdo/pdo_stmt.c),它可以轉換爲'long',''布爾值「和一個」字符串「,如果值不是這些。因此,從某種意義上說,使用'PARAM :: TYPE'常量已經過時了,但是,如果PDO將支持另一個不允許將'''作爲'null'的db類型'null'列,如果你使用參數,那麼支持這個數據庫也是一個簡單的改變。 – Xorifelse
@RickJames嗯,這就是爲什麼我問,因爲它似乎*沒有它的工作。所以想知道是否有某種邊緣情況或可能遇到的問題,如果我不*使用它可能會遇到。 – Svish