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 ));

但是一旦我击中执行它就不会继续。有趣的是,如果您在名为组合限制的文本字段中输入一个值,这是数据库插入时的组合限制,这会突然出现。它只是使页面空白,并且在执行时失败。我没有看到任何问题,所以我不知道它为什么会这样做。我检查了数据库中的字段是否与其他字段一样,所以我不明白。

Combinedlimit 是int(100)一个默认值,'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 不正确的整数值:':csl' for column 'Combinedlimit' at row 1' in E:\web\pcgprote\PCG\insert.php :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 回答