
[英]Failed to run query: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined using webservice
[英]Failed to run query: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
我是php的新手,一段时间以来一直在尝试摆脱此错误。 我相信我有正确数量的参数,但无法弄清楚问题出在哪里。 这是我的PHP代码在下面..任何答案都非常感谢。 谢谢
require ("common.php");
$mySessionName = $_SESSION['user']['UserName'];
if(!empty($_POST)){
$sql = "INSERT INTO compliance_requirement(ComplianceName, ComplianceGoal, ComplianceDescription, ComplianceStartDate, ComplianceEndDate, UserName)''VALUES (:compName, :compGoal, :compDes, :compStart, :compEnd, :$mySessionName)";
$query_paramsm = array(':ComplianceName' => $_POST['compName'], ':ComplianceGoal'=>$_POST['compGoal'], 'ComplianceDescription' => $_POST['compDes'], 'ComplianceStartDate'=>$_POST['compStart'], 'ComplianceEndDate'=>$_POST['compEnd'], 'UserName'=>$_POST['UserName']);
try{
$stmt = $db->prepare($sql);
$result = $stmt->execute($query_paramsm);
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
header("Location: compliance.php");
}
?>
很多问题。 1.查询中间有“ 2”。
$sql = "VALUES (:compName, ...";
$query_paramsm = array(':ComplianceName' => $_POST['compName'] ...);
compName和ComplianceName是两个非常不同的字符串。
您在查询中具有的变量:compName, :compGoal, :compDes, :compStart, :compEnd, :$mySessionName
与您的param数组中的名称不同:
array(':ComplianceName' => $_POST['compName'], ':ComplianceGoal'=>$_POST['compGoal'], 'ComplianceDescription' => $_POST['compDes'], 'ComplianceStartDate'=>$_POST['compStart'], 'ComplianceEndDate'=>$_POST['compEnd'], 'UserName'=>$_POST['UserName'])
看:
:compName <> :ComplianceName
:compGoal <> :ComplianceGoal
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.