次のPHPスクリプトを使用して挿入しようとすると、 :構文エラーまたはアクセス違反:1065クエリが空であり、foreachループが複数の選択値を処理するために使用されています。あなたは、コードの一部を削除して置くことができる私はもちろんPDOを使用してデータベースにデータを挿入しようとしていますが、クエリが失敗するとPDOを学習しています
<?php
require_once("functions/function.php");
require_once("db_connection.php");
require_once("database.php");
if(isset($_POST['group_name'])){
try{
$sql = "INSERT INTO group_details
(group_reg_no, group_name, leader_name,
leader_contact, region, district, division,
ward, village, activity,
category, men, women,
total, registred_date)
VALUES (:group_reg_no, :group_name, :leader_name,
:leader_contact, :region, :district,
:division, :ward, :village, :activity,
:category, :men, :women,
:total, now())";
$statement = $db->prepare($sql);
$params = array(':group_reg_no' => $_POST['group_reg_no'],
':group_name' => $_POST['group_name'],
':leader_name' => $_POST['leader_name'],
':leader_contact' => $_POST['leader_contact'],
':region' => $_POST['region'],
':district' => $_POST['district'],
':division' => $_POST['division'],
':ward' => $_POST['ward'],
':village' => $_POST['village'],
':activity' => $activity,
':category' => $_POST['category'],
':men' => $_POST['men'],
':women' => $_POST['women'],
':total' => $_POST['total'])
foreach ($_POST['activity'] as $activity) {
$params[':activity'] = $activity;
$statement->execute();
} // endforeach
$result = "<p style='padding: 20px; color: green;'> Registration Successful</p>";
}
catch (PDOException $ex){
$result = "<p style='padding: 20px; color: red;'> An error occurred: ".$ex->getMessage()."</p>";
}
}
?>
を見ることができるものから、全くforeach'ingする必要はいけない
<?php if(isset($result)) echo $result; ?>
<form class="form-horizontal" action="" method="post" role="form">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Group Name</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="group_name" placeholder="Group Name" id="name">
</div>
</div>
<div class="form-group">
<label for="number" class="col-sm-2 control-label">Registration Number</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="group_reg_no" placeholder="Registration Number" id="number">
</div>
</div>
<div class="form-group">
<label for="leader" class="col-sm-2 control-label">Group Leader Name</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="leader_name" placeholder="Group Leader Name" id="leader">
</div>
</div>
<div class="form-group">
<label for="contact" class="col-sm-2 control-label">Group Leader Contact</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="leader_contact" placeholder="Group Leader Contact" id="contact">
</div>
</div>
<?php require_once'first.php'; ?>
<div class="form-group">
<label for="activity" class="col-sm-2 control-label">Group Activity</label>
<div class="col-sm-3">
<select class="form-control" name="activity[]" id="activity" multiple="multiple">
<option value="">Select Activity</option>
</select>
</div>
</div>
<div class="form-group">
<label for="category" class="col-sm-2 control-label">Group Category</label>
<div class="col-sm-3">
<select class="form-control" name="category" id="category" onChange="JoinedOrNot()">
<option value="">Select Category</option>
<option value="Men">Men</option>
<option value="Women">Women</option>
<option value="Youth">Youth</option>
<option value="Both">Both</option>
</select>
</div>
</div>
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Number Of Men</label>
<div class="col-sm-8">
<input type='text' size='5' name="men" id="input1" value="" class='input' disabled></input>
</div>
</div>
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Number Of Women</label>
<div class="col-sm-8">
<input type='text' size='5' name="women" id="input2" value="" class='input' disabled></input>
</div>
</div>
<div class="form-group">
<label for="total" class="col-sm-2 control-label">Total</label>
<div class="col-sm-2">
<input type='text' size='5' id="input4" value="" name="total" disabled></input>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"></label>
<div class="col-sm-8">
<input type="submit" value="Register a Group" name="submit" class="btn btn-block btn-danger" id="subject"/>
</div>
</div>
</form>
<?php
require_once("functions/function.php");
require_once("db_connection.php");
require_once("database.php");
if(isset($_POST['group_name'])){
$group_name = $_POST['group_name'];
$group_reg_no = $_POST['group_reg_no'];
$leader_name = $_POST['leader_name'];
$leader_contact = $_POST['leader_contact'];
$region = $_POST['region'];
$district = $_POST['district'];
$division = $_POST['division'];
$ward = $_POST['ward'];
$village = $_POST['village'];
$activity = $_POST['activity'];
$category = $_POST['category'];
$men = $_POST['men'];
$women = $_POST['women'];
$total = $_POST['total'];
try{
foreach ((array)$_POST['activity'] as $value) {
$sqlInsert = "INSERT INTO group_details
(group_reg_no, group_name, leader_name,
leader_contact, region, district, division,
ward, village, activity,
category, men, women,
total, registred_date)
VALUES (:group_reg_no, :group_name, :leader_name,
:leader_contact, :region, :district, :division,
:ward, :village, :activity,
:category, :men, :women,
:total, now())";
}
$statement = $db->prepare($sqlInsert);
$statement->execute(array(':group_reg_no' => $group_reg_no, ':group_name' => $group_name, ':leader_name' => $leader_name, ':leader_contact' => $leader_contact, ':region' => $region, ':district' => $district, ':division' => $division, ':ward' => $ward, ':village' => $village, ':activity' => $activity, ':category' => $category, ':men' => $men, ':women' => $women, ':total' => $total));
if($statement->rowCount() == 1){
$result = "<p style='padding: 20px; color: green;'> Registration Successful</p>";
}
}catch (PDOException $ex){
$result = "<p style='padding: 20px; color: red;'> An error occurred: ".$ex->getMessage()."</p>";
}
}
?>
変数を割り当てる前にforeach($ _ POSTを$ key => $ val){$ _POST [$ key] = strval($ val);}することができます。 – Dimi
私はあなたの提案を試みましたが、同じエラーを返しました – punji
あなたは本当にクラスを使用する方法を学ぶ必要があります – Option