0

私は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");
}
?>
4

2 に答える 2

0

たくさんの問題。1. クエリの途中に '' があります 2.

$sql = "VALUES (:compName, ...";
$query_paramsm = array(':ComplianceName' => $_POST['compName'] ...);

compName と ComplianceName は、2 つの非常に異なる文字列です。

于 2013-10-17T15:03:52.387 に答える
0

クエリにある変数:compName, :compGoal, :compDes, :compStart, :compEnd, :$mySessionName

パラメータ配列と同じ名前ではありません:

array(':ComplianceName' => $_POST['compName'], ':ComplianceGoal'=>$_POST['compGoal'], 'ComplianceDescription' => $_POST['compDes'], 'ComplianceStartDate'=>$_POST['compStart'], 'ComplianceEndDate'=>$_POST['compEnd'], 'UserName'=>$_POST['UserName'])

見る :

:compName <> :ComplianceName
:compGoal <> :ComplianceGoal
...
于 2013-10-17T15:06:29.153 に答える