PHP PDO INSERT INTO 未插入

PHP PDO INSERT INTO not inserting

我在使用 PDO 向 MySQL 数据库中插入数据时遇到问题。
我没有错误,当我在终端中使用 MySQL 执行代码后 select 时,似乎没有在 table 中插入数据。

我已经在 Whosebug 的答案中尝试了解决方案,比如在反引号中包装名称和描述,但它仍然不起作用

这是我的 sql 专栏:

这是代码:

$query = $pdo->prepare("INSERT INTO cities (`name`, departement, province, lat, long, `description`, poi_id) VALUES(`:name`, :departement, :province, :lat, :long, `:description`, :poi_id)");
    $query = $query->execute([
        "name" => $name,
        "departement" => $code_dpt,
        "province" => (int)$provinces[$departements[$code_dpt]],
        "lat" => $lat,
        "long" => $long,
        "description" => $description,
        "poi_id" => (int)$poi_id
    ]);
$query = $pdo->prepare("INSERT INTO cities (`name`, departement, province, lat, long, `description`, poi_id) VALUES(:name, :departement, :province, :lat, :long, :description, :poi_id)");
$query->execute([
        ':name' => $name,
        ':departement' => $code_dpt,
        ':province' => (int)$provinces[$departements[$code_dpt]],
        ':lat' => $lat,
        ':long' => $long,
        ':description' => $description,
        ':poi_id' => (int)$poi_id
    ]);

execute 函数中使用占位符。

我找到了解决方案。 首先,我启用了这样的错误:

$pdo = new PDO('mysql:host=localhost;dbname=bpfmgr', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

我使用名为 long 的 属性 作为经度,但它是 MySQL 保留关键字,所以它会出错。我添加了反引号来包装 long,这很有效。