電話番号のないレガシーデータベーステーブルで作業しています。分野
しかし問題は、すべてのエントリ(4k以上)が変化していることです
フォーマット。
PHPを使用してレコードをループし、レコードを特定の電話形式に更新することで、それらを修正する簡単な方法があるかどうか疑問に思いました。
電話番号のないレガシーデータベーステーブルで作業しています。分野
しかし問題は、すべてのエントリ(4k以上)が変化していることです
フォーマット。
PHPを使用してレコードをループし、レコードを特定の電話形式に更新することで、それらを修正する簡単な方法があるかどうか疑問に思いました。
4Kは多くのレコードのようには聞こえません。
そして、さまざまなフォーマットが有限の数の組み合わせに分類されることは間違いありません。
いくつかの賢明なSQLクエリでそれが可能かどうか疑問に思います。RDBMSに正規表現と文字列置換関数がある場合は、いくつかのUPDATE命令でRDBMSを管理できます。そうでない場合は、データベースのクエリ、文字列の置換、および更新の機能を備えた任意の言語がその役割を果たします。
私は4kレコードが心配することは何もないことに同意します。電話番号とテーブルのプライマリIDをクエリし、電話番号からすべての文字を削除してから、希望の形式になるように操作することをお勧めします。または、数字のみとして保持し、フロントエンドを使用して、表示するたびに数字を変更することもできます。以下は、使用を試みることができる少しテストされていないスクリプトです。拡張機能を処理せず、10個の数値があることを想定しています。
// mysql_connect stuff
$q = mysql_query("Select phone_id, phone_number From phones");
while($r = mysql_fetch_assoc($q)) {
$num = ereg_replace("[^0-9]", "", $r['phone_number']);
if(strlen($num) == 10) {
$num = substr($num, 0, 3) . '-' . substr($num, 3, 3) . '-' . $substr($num,-4);
}
$update = mysql_query("Update phones Set phone_number = '" . $num . "' Where phone_id = " . $r['phone_id']);
// updated?
}