我有一部分代码应该将数据输入到表单中,将其存储在数组中,然后将其输入数据库。我在 $fields 和 $data 上使用了 var_dump,它们都返回在字段中输入的信息(在 add_habbo 函数中)。所以我遇到的问题是 MYSQL/PDO 代码没有将这些数据插入到数据库中。
这是我用来将它们插入数据库的代码:
$fields = '`' . implode('`, `', array_keys($habbo_data)) . '`';
$data = '\'' . implode('\', \'', $habbo_data) . '\'';
var_dump($fields);
var_dump($data);
global $con;
$query = "INSERT INTO `personnel` (:fields) VALUES (:data)";
$result = $con->prepare($query);
$result->bindParam(':fields', $fields, PDO::PARAM_STR);
$result->bindParam(':data', $data, PDO::PARAM_STR);
$result->execute();
我的印象是它与 bindParam 部分有关,可能是 PDO::PARAM_STR?感谢你的协助!
更新:
$fields = '`' . implode('`, `', array_keys($habbo_data)) . '`';
$fields_data = ':' . implode(', :', array_keys($habbo_data));
var_dump($fields);
var_dump($fields_data);
global $con;
$query = "INSERT INTO `personnel` (`rank`, `habbo_name`, `rating`, `asts`, `promotion_date`, `transfer_rank_received`, `cnl_trainings`, `rdc_grade`,
`medals`, `branch`) VALUES ({$fields_data})";
$result = $con->prepare($query);
$result->execute($habbo_data);
$arr = $result->errorInfo();
print_r($arr);
错误:
数组( [0] => 21S01 [1] => 1136 [2] => 列数与第 1 行的值计数不匹配)