0

私はPDOに取り組んでいますが、これを何時間も試してきましたが、それでもデータベースに入力を挿入することに成功しませんでした。エラーが発生しないため、$err->成功したメッセージが表示されます。しかし、データベースに挿入するチャンスはありません...

あなたが助けることができればうれしいです。

注:ユーザーIDについては、別のテーブルの列useridからIDを取得し、それを別のテーブル「params_user_id」列に挿入しようとしています。

これが私のコードです:

if(isset($_POST["create"])) {
try{

$param1 = cleanInput($_POST["param1"]);
$param2 = cleanInput($_POST["param2"]);
$param3 = cleanInput($_POST["param3"]);
$param4 = cleanInput($_POST["param4"]);
$param5id = cleanInput($_POST["param5id"]);
$param6id = cleanInput($_POST["param6id"]);
$param7 = cleanInput($_POST["param7"]);
$param8id = cleanInput($_POST["param8id"]);
$param9 = cleanInput($_POST["param9"]);
$param10 = cleanInput($_POST["param10"]);
$param11 = cleanInput($_POST["param11"]);
$param12 = cleanInput($_POST["param12"]);
$param13 = cleanInput($_POST["param13"]);
$param14 = cleanInput($_POST["param14"]);
$param15 = cleanInput($_POST["param15"]);
$param16 = cleanInput($_POST["param16"]);
$param17 = cleanInput($_POST["param17"]);
$param18 = cleanInput($_POST["param18"]);
$param19 = cleanInput($_POST["param19"]);
$param20 = cleanInput($_POST["param20"]);
$param21 = cleanInput($_POST["param21"]);
$userid = $_SESSION[':userid'];
$datenow = date('Y-m-d H:i:s');


$create_params_query = "INSERT INTO `params`(`datenow`, `param1`, `param2`, `param3`, `param4`, `param5id`, `param6id`, `param7`, `param8id`, `param9`, `param10`, `param11`, `param12`, `param13`, `param14`, `param15`, `param16`, `param17`, `param18`, `param19`, `param20`, `param21`,`params_user_id`) VALUE(:datenow, :param1, :param2, :param3, :param4, :param5id, :param6id, :param7, :param8id, :param9, :param10, :param11, :param12, :param13, :param14, :param15, :param16, :param17, :param18, :param19, :param20, :param21, :userid)";

$create_params_do = $db->prepare($create_params_query);
$create_params_do -> bindParam(':datenow', $datenow, PDO::PARAM_STR);
$create_params_do -> bindParam(':param1', $param1, PDO::PARAM_STR);
$create_params_do -> bindParam(':param2', $param2, PDO::PARAM_STR);
$create_params_do -> bindParam(':param3', $param3, PDO::PARAM_STR);
$create_params_do -> bindParam(':param4', $param4, PDO::PARAM_STR);
$create_params_do -> bindParam(':param5id', $param5id, PDO::PARAM_INT);
$create_params_do -> bindParam(':param6id', $param6id, PDO::PARAM_INT);
$create_params_do -> bindParam(':param7', $param7, PDO::PARAM_STR);
$create_params_do -> bindParam(':param8id', $param8id, PDO::PARAM_INT);
$create_params_do -> bindParam(':param9', $param9, PDO::PARAM_STR);
$create_params_do -> bindParam(':param10', $param10, PDO::PARAM_STR);
$create_params_do -> bindParam(':param11', $param11, PDO::PARAM_STR);
$create_params_do -> bindParam(':param12', $param12, PDO::PARAM_STR);
$create_params_do -> bindParam(':param13', $param13, PDO::PARAM_STR);
$create_params_do -> bindParam(':param14', $param14, PDO::PARAM_STR);
$create_params_do -> bindParam(':param15', $param15, PDO::PARAM_STR);
$create_params_do -> bindParam(':param16', $param16, PDO::PARAM_STR);
$create_params_do -> bindParam(':param17', $param17, PDO::PARAM_STR);
$create_params_do -> bindParam(':param18', $param18, PDO::PARAM_STR);
$create_params_do -> bindParam(':param19', $param19, PDO::PARAM_STR);
$create_params_do -> bindParam(':param20', $param20, PDO::PARAM_STR);
$create_params_do -> bindParam(':param21', $param21, PDO::PARAM_STR);
$create_params_do->bindParam(':userid', $userid, PDO::PARAM_INT);

$create_params_do->execute() or die(print_r($create_params_do->errorInfo(), true));
//forgot to add when posting first sorry, i have that also.
}
catch(PDOException $e) {
$log->logError($e." - ".basename(__FILE__));
}


$err = "<div class=\"success\"><strong>"._("Congrats.")."</strong><br/>"._("Success.")."</div>";
}
4

2 に答える 2

1

あなたは行方不明です

$create_params_do->execute();

パラメータの最後に

クエリは次のようになります。

$create_params_query = "INSERT INTO `params`(`datenow`, `param1`, `param2`, `param3`, `param4`, `param5id`, `param6id`, `param7`, `param8id`, `param9`, `param10`, `param11`, `param12`, `param13`, `param14`, `param15`, `param16`, `param17`, `param18`, `param19`, `param20`, `param21`,`params_user_id`) VALUES(:datenow, :param1, :param2, :param3, :param4, :param5id, :param6id, :param7, :param8id, :param9, :param10, :param11, :param12, :param13, :param14, :param15, :param16, :param17, :param18, :param19, :param20, :param21, :userid)";

VALUESなしでVALUE

于 2012-08-24T06:40:19.187 に答える
1

デフォルトでIorga側に追加するには、PDOはエラーに対してサイレントであるため、何が起こっているのかを知りたい場合は、以下に示すようにPDO error_modeを設定して、ノイズが多いことをPDOに指示する必要があります。あなたの場合、VALUEまたはVALUESは機能します(MySQL 5.5でテスト済み)。例外エラーをキャッチすると、データベースにコミットしない本当の理由がわかります。

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
于 2014-07-21T16:04:45.840 に答える