php - 无法运行查询 : SQLSTATE[HY093]: Invalid parameter number: parameter was not defined

标签 php mysql sql

我是 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 是两个截然不同的字符串。

关于php - 无法运行查询 : SQLSTATE[HY093]: Invalid parameter number: parameter was not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19430305/

相关文章:

php - 每周存储多人统计数据的最佳方式

php - 使用 Eclipse SimpleTest 插件 - SimpleTest 不工作

sql - 在 select 语句的第一行中使用 '*' 和 '.*' 有什么区别?

sql - 如何为递归sql设置停止条件?

php - 根据日期从多个表中选择行

sql - 为什么此查询失败并显示 "Cannot convert a char value to money. "

php - 在 IE 中使用复选框展开/折叠 div

php - 检查 DST 是否有效

mysql - 连接两个表并获取最后一条记录

php - 如何在php中将多个json响应发送回ajax