Пожалуйста дайте подскажку как обновить базу при помощи форыча. Вчера получилось, а щас нифига не получается, записывается во все строки только последняя строка.
Скрипт регулярным выражением форматирует по шаблону телефоны и должен перезаписывать на правильный формат. Но елки палки, цикл записывает в базу один и тот же номер, гори он в аду
<?php
error_reporting(E_ALL);
define('DB_HOST', '111');
define('DB_USER', '111');
define('DB_PASSWORD', '111');
define('DB_NAME', '111');
$dbc= mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die('error DB');
$query="SELECT * FROM user";
mysqli_query($dbc, 'set names utf8');
$result=mysqli_query($dbc, $query) or ('ошибка ');
while($row=mysqli_fetch_array($result)){
$user_id=$row['user_id'];
$string=$row['telefon'];
$pattern = [
'~(?:[^\d\s]+|(?<=\d)\s(?=\d))~',
'~(?<=\b)(?=\d)~',
'~\b[8](\d+\b)~'
];
$replace = ['', '+', '37$1'];
$string = preg_replace($pattern, $replace, $string);
$masiv[]=$string;
}
foreach($masiv as &$telefon)
{
$query="UPDATE user SET telefon='$telefon'";
$data=mysqli_query($dbc, $query) or die('error');
}
?>
$telefon='';
$user_id=...;
$stmt = mysqli_prepare($dbc, "UPDATE user SET telefon=? WHERE user_id=?");
$stmt->bind_param('si', $telefon, $user_id);
foreach($masiv as $telefon)
{
$stmt->execute();
}
Только вот у вас каждый раз будут обновляться все телефоны в таблице с таким SQL. Может там куда WHERE вставить (потелепатировал слегка)?
Продвижение своими сайтами как стратегия роста и независимости