Php 我试图使用PDO将数据插入数据库,但每当我尝试查询失败时,我就会学习PDO
每当我尝试使用下面的php脚本插入时,就会收到一条错误消息:SQLSTATE[42000]:语法错误或访问冲突:1065查询为空,foreach循环用于处理多个select值 组名 注册号 组长姓名 组长联系人 团体活动 选择活动 组类别 选择类别 男人 女人 青年 二者都 男子人数 妇女人数 全部的Php 我试图使用PDO将数据插入数据库,但每当我尝试查询失败时,我就会学习PDO,php,pdo,Php,Pdo,每当我尝试使用下面的php脚本插入时,就会收到一条错误消息:SQLSTATE[42000]:语法错误或访问冲突:1065查询为空,foreach循环用于处理多个select值 组名 注册号 组长姓名 组长联系人 团体活动 选择活动 组类别 选择类别 男人 女人 青年 二者都 男子人数 妇女人数 全部的 从我所看到的情况来看,你根本不必担心 <?php require_once("functions/function.php"); require_once("db_c
从我所看到的情况来看,你根本不必担心
<?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>";
}
}
?>
当然,如果您想删除一些不必要的代码,可以删除一些代码并将$\u POST值直接放入$params数组中
您可能还希望在执行插入之前确保所有这些$\u POST值都已设置,或者至少使用默认值初始化每个标量变量。只是为了完全安全。从我所看到的情况来看,你根本不需要去开会
<?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>";
}
}
?>
当然,如果您想删除一些不必要的代码,可以删除一些代码并将$\u POST值直接放入$params数组中
您可能还希望在执行插入之前确保所有这些$\u POST值都已设置,或者至少使用默认值初始化每个标量变量。只是为了完全安全。下面是我对课程的评论,这是我的简单答案: 在表单所在的页面上添加以下内容:
<?php
require_once("functions/function.php");
require_once("db_connection.php");
require_once("database.php");
require_once('class.handleit.php');
$handle = new HandleIt();
if (isset($_POST['group_name']))
{
$handle->handleIt($_POST['group_name'], $_POST['group_reg_no'], $_POST['leader_name'], $_POST['leader_contact'], $_POST['region'], $_POST['district'], $_POST['division'],
$_POST['ward'], $_POST['village'], $_POST['activity'], $_POST['category'], $_POST['men'], $_POST['women'], $_POST['total']);
}
?>
您将看到有两个类。。Insert和fetch Insert解释了它的本身,fetch是这样的,您可以在所需的页面上运行foreach
以下是foreach示例:
<?php
$getForeach = $handle->fetchIt();
foreach ($getForeach as $row)
{
echo "<div>$row->group_name</div>";
/* and so on.. you get the idea.. */
}
?>
请记住,foreach需要进入需要您的类和类名的页面。因此,下面是我对类的评论,这是我的简化答案: 在表单所在的页面上添加以下内容:
<?php
require_once("functions/function.php");
require_once("db_connection.php");
require_once("database.php");
require_once('class.handleit.php');
$handle = new HandleIt();
if (isset($_POST['group_name']))
{
$handle->handleIt($_POST['group_name'], $_POST['group_reg_no'], $_POST['leader_name'], $_POST['leader_contact'], $_POST['region'], $_POST['district'], $_POST['division'],
$_POST['ward'], $_POST['village'], $_POST['activity'], $_POST['category'], $_POST['men'], $_POST['women'], $_POST['total']);
}
?>
您将看到有两个类。。Insert和fetch Insert解释了它的本身,fetch是这样的,您可以在所需的页面上运行foreach
以下是foreach示例:
<?php
$getForeach = $handle->fetchIt();
foreach ($getForeach as $row)
{
echo "<div>$row->group_name</div>";
/* and so on.. you get the idea.. */
}
?>
请记住,foreach需要进入需要您的类和类名的页面。您可以将foreach$\u POST作为$key=>$val{$\u POST[$key]=strval$val;}在分配变量并查看是否有任何问题得到解决之前,我已经尝试了您的建议,但仍然存在相同的错误您确实需要学习如何使用类可以将每个$\u POST作为$key=>$val{$\u POST[$key]=strval$val;}在您分配变量并查看是否有问题得到解决之前?我尝试了您的建议,但仍然存在相同的错误。您确实需要了解如何使用classesif i remove foreach loop如果用户选择多个活动,我如何处理多个select value?您在原始代码中并没有这样做。因此,您最好向我们展示正在处理的表单,以便我可以更仔细地查看可能会进入此脚本的输入您的foreach只是在执行$sqlInsert=。。。。代码行多次,不运行多次插入OK我将学习如何使用类,但为什么建议使用类@Option@punji我将忽略这一评论,如果我删除foreach循环,那么在用户选择多个活动的情况下,我如何处理多个select值呢?您在原始代码中实际上并没有这样做。因此,您最好向我们展示正在处理的表单,以便我可以更仔细地查看可能会进入此脚本的输入您的foreach只是在执行$sqlInsert=。。。。代码行多次,不运行多次插入OK我将学习如何使用类,但为什么建议使用类@Option@punji我将忽略这一评论,它毫无帮助