我正在处理一个有电话号码的旧数据库表。领域
但问题是所有条目(超过4k)都在变化
格式。
我想知道是否有一种快速方法可以通过使用PHP循环记录并将记录更新为特定的电话格式来修复它们
答案 0 :(得分:1)
4K根本听起来不像很多记录。
我敢打赌,不同的格式属于有限数量的组合。
我想知道是否可以使用一些明智的SQL查询。如果您的RDBMS具有正则表达式和字符串替换函数,则可以使用一些UPDATE指令对其进行管理。如果没有,任何能够查询数据库,进行字符串替换和更新的语言都可以完成这项工作。
答案 1 :(得分:1)
我同意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?
}