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
,这很有效。
我在使用 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
,这很有效。