1

お願い助けて。varchar 列に挿入しました

$nul='mystring';
$STH->bindParam(':param',$nul , PDO::PARAM_INT);

PDO :: PARAM_INTがデータベースに挿入することを意味する場合、番号( int) $ nul = 0 ! レコード文字列「mystring」があります。何故ですか?

4

2 に答える 2

3

PHP PDO::bindParam() データ型を参照してください。どのように機能しますか?

PDO::PARAM_INT はブール値を整数に変換するだけです。他には何もありません。

文字列を int に変換する場合は、intval を使用します。

于 2013-10-08T08:29:16.403 に答える
2

私があなたの質問を正しく理解していると仮定すると、データベースで値を 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

于 2013-10-08T08:13:29.960 に答える