PHP PDO查询问题

PHP PDO查询问题,php,mysql,Php,Mysql,我正在将我的项目切换到PDO,我对以下代码有问题。它不会抛出错误,但也不会插入数据库。我一直在阅读PDO,并研究了DebugdumpParams()。我添加了$result->debugDumpParams(),页面没有加载 我是否需要在prepare()之后、在execute()之前使用BindParam()才能进行调试 public function CustomerInsert($name, $street1, $street2, $city, $state, $zip, $phone_a

我正在将我的项目切换到PDO,我对以下代码有问题。它不会抛出错误,但也不会插入数据库。我一直在阅读PDO,并研究了
DebugdumpParams()
。我添加了
$result->debugDumpParams()
,页面没有加载

我是否需要在
prepare()
之后、在
execute()
之前使用
BindParam()
才能进行调试

public function CustomerInsert($name, $street1, $street2, $city, $state, $zip, $phone_area, $phone, $email, $notes, $leadtype, $rating, $newsletter, $frequency)
    {
$q = "INSERT INTO customers VALUES('', :name , :street1 , :street2 , :city , :state , :zip , :phone_area , :phone , :email , :notes , :newsletter , :leadtype , :frequency )";

try{
$result = $this->connection->prepare($q); 

$result->execute(array(':name'=>$name, ':street1'=>$street1, ':street2'=>$street2, 
                                ':city'=>$city, ':state'=>$state, ':zip'=>$zip, ':phone_area'=>$phone_area, 
                                ':phone'=>$phone, ':email'=>$email, ':notes'=>$notes, ':newsletter'=>$newsletter, 
                                ':leadtype'=>$leadtype, ':frequency'=>$frequency));
}
catch (PDOException $e) 
{  
   throw new Exception('Connection failed: ' . $e->getMessage());
 }

您的查询看起来没有格式错误,因此我猜测值的数量与表中字段的数量不匹配。您可以通过指定查询中的字段来解决此问题:

$q = "INSERT INTO `customers` 
      (`name`,`street1`,`street2`,`city`,`state`,`zip`,`phone_area`,`phone`,`email`,`notes`,`newsletter`,`leadtype`,`frequency`)
      VALUES(:name , :street1 , :street2 , :city , :state , :zip , :phone_area , :phone , :email , :notes , :newsletter , :leadtype , :frequency )";
但是如果您,例如:


打开错误报告我该怎么做?PHP中的错误报告?有可能在每个文件的基础上执行此操作吗?还可以查看
$result->ErrorInfo()
$this->connection->ErrorInfo()
返回的内容。是的,您可能在某个地方有一个警告。我的一个愚蠢的问题,我希望你不会介意,但是你确定可以指定一个insert而不在value(…)部分之前添加字段吗?(作为一个暗中的刺杀,我建议删除insert中的初始
“”
,这是auto_number ID字段所在的位置吗?)啊,亲爱的,这是在抛出一个列的错误。我想我现在可以弄明白了。将在一分钟内更新。
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);