繁体   English   中英

PHP PDO查询问题

[英]PHP PDO query issue

我将项目切换到PDO,并且以下代码出现问题。 它不会引发错误,但是也不会插入数据库。 我一直在阅读PDO,并且已经研究了DebugdumpParams() 我添加了$result->debugDumpParams() ,但页面未加载。

我是否需要使用BindParam()之后prepare()execute()以能够调试?

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

但是,如果您在PDO内打开错误报告,则可以从MYSQL中看到错误,例如:

$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM