0

やあみんな私はこのコードを持っています:

$tdata = "INSERT INTO insuranceverificationdisclaimer (InsCoName, PhoneNumber, Policy, InsuredName, MailingAdrs, EffDate, ExpDate, Email1, YrVehicle , Make, Model, VIN, TraineeUserName, EmpName, EmpCoName, AgencyNumber, SignDate, AgentName, AgentPhone, AgentEmail , Combinedlimit, bodyinjur ,bodyinjureachacc , propertydmg ) VALUES (':insur',':phone',':policy' ,':insurname',':mailingad',':effdate',':expdate',':email',':yr',':make',':model',':vin',':user',':empname',':empcomp',':agnum',':signdate',':agname',':agphone',':agemail',':csl',':body',':acc',':prop')";
$tinsertdata = $DBH->prepare($tdata);
$tinsertdata->execute(array(':insur' => $compname, ':phone' => $phone , ':policy' => $policynum, ':insurname' => $nameofPolicyholder, ':mailingad' => $newMailingAdrs, ':effdate' => $Policyeffdate, ':expdate' => $Policyexpdate, ':email' => $newEmployeeEmail, ':yr' => $YearOfVehicle, ':make' => $MakeOfVehicle, ':model' => $ModelOfVehicle, ':vin' => $Vehicleid, ':user' => $username, ':empname' => $EmployeeName, ':empcomp' => $EmployeeCompanyName, ':agnum' => $Agencynum, ':signdate' => $TodaysDate, ':agname' => $agentname, ':agphone' => $agentphone, ':agemail' => $agentemail, ':csl' => $singlelimit, ':body' => $bodyinjur, ':acc' => $eachacc, ':prop' => $propertydmg ));

しかし、私が実行をヒットすると、それは実行されません。面白いことに、これは、データベース挿入のCombinedlimitsであるcombinedlimitsと呼ばれるテキストフィールドに値を入力したかどうかに基づいてどこからともなく発生しました。ページを空白にするだけで、実行に失敗します。何も悪いことはないので、なぜそうなっているのかわかりません。データベース内のフィールドが他のフィールドと同じであるかどうかを確認したので、取得できません。

Combinedlimitは、何も入力されていない場合int(100)のデフォルトのaです。'0'フォームのそのフィールドに何も入力しない場合は、正しく機能しません。

これがcombinedlimitの入力ボックスコードです。

<span class="limitsection">Combined Single Limit for bodily 
injury and property damage liability: </span>
<div class="InputInner"> <input type="text" 
name="singlelimit" onkeypress="return isNumberKey(event)"  
class="combinedinput" value="<?php echo $_SESSION['singlelimit']; ?>">
</div><!----- END    .InputInner ---------->

キーを押すと、ユーザーは数字を入力することしかできません。

あなたが助けることができれば私は感謝します:)

編集:

私はちょうどこのエラーを受け取りました:

致命的なエラー:キャッチされない例外'PDOException'とメッセージ'SQLSTATE [HY000]:一般エラー:1366整数値が正しくありません:E:\ web \ pcgprote \ PCG \insert.phpの行1'の列'Combinedlimit'の':csl' :545スタックトレース:#0 E:\ web \ pcgprote \ PCG \ insert.php(545):PDOStatement-> execute(Array)#1 {main}がE:\ web \ pcgprote \ PCG\insert.phpにスローされます545行

4

2 に答える 2

3

プリペアドステートメント内のプレースホルダーを引用する必要はありません(つまり':insur'、ではなく、単に:insur)。PDOは値の引用を処理します。

于 2013-01-23T19:29:08.670 に答える
1

PDOバインディングで多くの問題が発生した後、私はこの解決策を見つけました。

PDOは欠落している束縛変数を識別します

于 2013-01-23T19:31:41.460 に答える