php - MySQL 用 faker 生成的结果更新表

标签 php mysql pdo mariadb faker

我有一个联系人表,我想用随机生成的来更新 结果:

+------------+--------------+------+-----+---------+----------------+
| 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));

连接 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,
    ));
}

在控制台中 echo 打印所有不同的数字,但打印数据库中的所有记录 得到相同的号码!我的错误在哪里?

最佳答案

只是一个错字。应该是

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

有原因。

关于php - MySQL 用 faker 生成的结果更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54541386/

相关文章:

php - 简单的 PHP 图像移动

php - CakePHP : onError method in AppModel is not called when there is a sql error

python - MySQLdb 模块是否支持准备好的语句?

PHP 打印发送到 MSSQL 的所有查询

Php soap 客户端 + 得到空响应

php - 如何让 gettext 在 IIS/PHP 上工作

php - PDO 连接被 laravel 拒绝,但不被 $con = new PDO() 拒绝

PHP PDO fetchAll() 返回空数组

php - 使用 PHP 和 PDO 重定向链接

php - 执行 PDO 语句的更好方法