お願い助けて。varchar 列に挿入しました
$nul='mystring';
$STH->bindParam(':param',$nul , PDO::PARAM_INT);
PDO :: PARAM_INTがデータベースに挿入することを意味する場合、番号( int) $ nul = 0 ! レコード文字列「mystring」があります。何故ですか?
PHP PDO::bindParam() データ型を参照してください。どのように機能しますか?
PDO::PARAM_INT はブール値を整数に変換するだけです。他には何もありません。
文字列を int に変換する場合は、intval を使用します。
私があなたの質問を正しく理解していると仮定すると、データベースで値を null (不確定値) にする必要がありますが、実際には文字列 'nul' を取得しています。
何かを null に設定する場合、アポストロフィは必要ありません。
// Setting the value of the string
$string_to_insert = 'my_string';
// Checks that the string has a value, if not sets to NULL
$value = isset($string_to_insert) ? $string_to_insert : null;
// Bind the parameter
$STH->bindParam(':param', $value, PDO::PARAM_INT);
アポストロフィで囲むと、データベースでそのリテラル文字列を受け取ります。
NULL は定数です。こちらのドキュメントをご覧ください http://www.php.net/manual/en/language.types.null.php