PHP:无法使用 PDO 插入到 MYSQL 表中

标签 php mysql pdo prepared-statement

下面使用 PDO 的 MYSQL INSERT 命令失败了。在它失败并报告之后,DROP TABLE 命令也失败了。我只是不明白代码有什么问题:/

$sql = $db2->prepare(
'INSERT INTO citizens_12_01_12
(login, rank, xp, level, citizenship, totalDamage, economySkill, damageToday, strength) 
VALUES 
(:login, :rank, :xp, :citizenship, :totalDamage, :economySkill, :damageToday, :strength)'
);
$sql->bindParam(':strength', $api->strength, PDO::PARAM_INT);
$sql->bindParam(':damageToday', $api->damageToday, PDO::PARAM_INT);
$sql->bindParam(':economySkill', $api->economySkill, PDO::PARAM_INT);
$sql->bindParam(':totalDamage', $api->totalDamage, PDO::PARAM_INT);
//$sql->bindValue(':organization', api->organization, PDO::PARAM_BOOL);
$sql->bindParam(':citizenship', $api->citizenship, PDO::PARAM_STR);
$sql->bindParam(':level', $api->level, PDO::PARAM_INT);
$sql->bindParam(':xp', $api->xp, PDO::PARAM_INT);
$sql->bindParam(':login', $api->login, PDO::PARAM_STR);
$sql->bindParam(':rank', $api->rank, PDO::PARAM_STR);

if ($sql->execute()) {
    echo "Query succeeded.";
} else {
    echo "Query failed.";
    $db2->query("DROP TABLE 'citizens_12_01_12'");
}

error_log 中的以下错误:

PHP Warning:  PDOStatement::execute() [<a href='pdostatement.execute'>pdostatement.execute</a>]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in .../getcitizens.php on line 55

第 55 行是 $sql->execute() 行

最佳答案

您在插入语句中缺少变量 :level

应该是:

$sql = $db2->prepare(
'INSERT INTO citizens_12_01_12
(login, rank, xp, level, citizenship, totalDamage, economySkill, damageToday, strength) 
VALUES 
(:login, :rank, :xp, :level, :citizenship, :totalDamage, :economySkill, :damageToday, :strength)'
);

关于PHP:无法使用 PDO 插入到 MYSQL 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829097/

相关文章:

php - Curl shell脚本不给php文件变量

php - 如何使用列名作为值并过滤最高值MYSQL/PHP

php - 需要有关 mod_rewrite 的帮助

php - 为什么我会收到 HY093 错误 [PDO]

php - 从 PHP -> Ruby 解密 2C2P PKC7

mysql - phpmyadmin 显示 "No tables found in database."但左侧边栏上仍然存在表格?

mysql - 如何从给定数据库获取充电时间?

php - 显示/隐藏记录 PHP MySQL

php - 调用未定义的方法 DB::prepare()

php - 循环连接时出现太多连接错误