1

preg_replace()電話番号を格納する入力フィールドに使用すると、何らかの理由でそれを MySQL に格納できません。preg_replace は整数に使用できますか、それとも文字列のみに使用できますか?

テキストフィールドに文字を入力できないようにしようとしています..誰かが洞察を与えることができますか?

$tel = $_POST['tel'];

// preg_replace を使用すると、MySQL に値が保存されません

$tel = preg_replace($reg_num,'', $tel);

...

    $st->bindParam(6, $tel, PDO::PARAM_INT);
4

3 に答える 3

2

preg_replace整数を文字列としてキャストし、置換を正しく実行します。ただし、bindParam整数が必要な場合は文字列を返します。

電話番号を Integer として保存すると、先頭の '0' または '+' 記号 (国​​際電話番号に使用する場合) が失われるため、通常はお勧めできません。

于 2012-07-03T10:08:02.043 に答える
1

問題は、変数に文字列が含まれているのに、PDO が電話パラメーターの整数を期待している可能性があると思います。$tel代わりに試してください:

$st->bindParam(6, int($tel), PDO::PARAM_INT);

ただし、おそらく電話番号を文字列として保存する必要があります (ただし、これにはスキーマの変更が必要になる場合があります)。

$st->bindParam(6, $tel, PDO::PARAM_STR);
于 2012-07-03T10:08:50.360 に答える
0

通常の exp.. がない場合は、単に str_replace(); を使用してください。

$tel = str_replace ($reg_num,'', $tel);
于 2012-07-03T10:13:05.637 に答える