1

HTMLフォームからMySQLデータベースに電話番号を入力しようとしていますmysql_real_escape_string. 番号は 0123456789 ですが、私のデータベースでは 23456789 と書かれています。データベースに他の数字と一緒にそのゼロを挿入する方法を知っている人はいますか、またはフォームの値を文字に分割する方法がある場合は、MySQL db に 1 つずつ入力しますか?

ゼロを入力しない私のコードは次のとおりです。

<?php
$Phone = mysql_real_escape_string($_POST['phone']);
mysql_query("INSERT INTO `user` (`phone`) VALUES ('{$Phone}')");
?>
4

3 に答える 3

5

それは逃げることとは何の関係もありません。先行ゼロを維持したい場合は、値を整数ではなく文字列として保存する必要があります。

于 2013-03-12T15:06:53.563 に答える
0

データ型を varchar(10) に変更する必要があります。後で数値として処理する場合は、文字列から解析するだけです。番号 01xxx はデータベースに存在しません。

于 2013-03-12T15:10:46.127 に答える
-3

PHP は緩やかに型付けされています。電話フィールドが数値データ型ではなく VARCHAR / CHAR として格納されていると仮定すると、エスケープ文字列は本来の機能を果たしています。PHP は $_POST 変数のデータを整数として認識し、先頭の 0 を切り捨ててから mysql_real_escape_string() 関数に渡します。引数を に変更する( '' . $_POST['phone'] )と、文字列にキャストされ、意図したとおりに機能します。

<?php 
    $phone = mysql_real_escape_string( '' . $_POST['phone'] );
于 2013-03-12T15:12:08.207 に答える