簡體   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