MySQL обновляет таблицу с результатами, созданными мошенниками - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть таблица контактов, которую я хочу обновить со случайно сгенерированными результатами:

+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
| company_id | tinyint(1)   | NO   |     | 0       |                |
| name       | varchar(255) | NO   | MUL | NULL    |                |
| phone      | varchar(25)  | NO   | MUL | NULL    |                |
| email      | varchar(255) | NO   | MUL | NULL    |                |
+------------+--------------+------+-----+---------+----------------+

Поэтому я использую

require_once "/vendor/fzaninotto/faker/src/autoload.php";

$faker = Faker\Factory::create('ru_RU');
$faker->addProvider(new Faker\Provider\ru_RU\Payment($faker));

, чтобы подключить фейкер и изменить локаль на ru_RU

и затем я зацикливаюсь на своей базе данных, чтобы изменить все телефонные номера:

for ($i = 1; $i < ; $i++) {
    $phone = $faker->phoneNumber;
    echo $phone;

    $sql = "UPDATE contact
              SET phone = :phone WHERE 1";
    $stmt = $pdo->prepare($sql);
    $stmt->execute(array(
        ':phone' => $phone,
    ));
}

В консоли эхо выводит все разные номера, НО все записи в БД получили один и тот же номер!Где моя ошибка?

1 Ответ

0 голосов
/ 05 февраля 2019

Просто опечатка.Должно быть

$sql = "UPDATE contact
              SET phone = :phone WHERE id = :id";
    $stmt = $pdo->prepare($sql);
    $stmt->execute(array(
        ':phone' => $phone,
        ':id' => $i
    ));

причины.

...