PHP pdo ,為什麼不拋出異常?

來源:互聯網
上載者:User
關鍵字 php pdo

如下代碼:

/**     * 寫入資料     *     * @param  string $table     * @param  array  $data     * @return int     */    public function insert($table ,$data){        try {            $sql = "INSERT INTO ".$this->table($table);            $columns = $values = '';            foreach( $data as $k=>$v ) {                $columns .= "`$k`,";                $values .= ":$k,";            }            $columns = rtrim($columns,',');            $values = rtrim($values,',');            $sql = $sql . " ($columns) VALUES ($values)";            $this->_init($sql ,$data);            unset($sql ,$columns ,$values);            return $this->insertId();        }catch( \PDOException $e ) {            $this->halt($e->getMessage() ,$this->getSql());            return false;        }    }

會產生如下SQL,

INSERT INTO `dba_tables` (`pid`,`sellerId`,`cardNum`,`processUnit`,`proDate`,`dateOfPro`,`shipDate`,`clinicName`,`doctor`,`created`,`doctorEmail`,`doctorMobile`,`treatTime`,`treatDesc`,`patient`,`patientEmail`,`remark`) VALUES (3,0,'2DFBD1-9E27-CFFD-6846-459CA9E9','第二車間',1460476800,1459008000,1463068800,'某醫院','某醫生',1460507802,'d@a.com','13333333333','','牙','某某某','c@a.com','asfasdf')

用PHP執行上面的語句,不出現在錯誤也不拋出異常。
已經開啟了pdo的拋出異常模式

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

但是用phpmyadmin執行會出現如下錯誤

回複內容:

如下代碼:

/**     * 寫入資料     *     * @param  string $table     * @param  array  $data     * @return int     */    public function insert($table ,$data){        try {            $sql = "INSERT INTO ".$this->table($table);            $columns = $values = '';            foreach( $data as $k=>$v ) {                $columns .= "`$k`,";                $values .= ":$k,";            }            $columns = rtrim($columns,',');            $values = rtrim($values,',');            $sql = $sql . " ($columns) VALUES ($values)";            $this->_init($sql ,$data);            unset($sql ,$columns ,$values);            return $this->insertId();        }catch( \PDOException $e ) {            $this->halt($e->getMessage() ,$this->getSql());            return false;        }    }

會產生如下SQL,

INSERT INTO `dba_tables` (`pid`,`sellerId`,`cardNum`,`processUnit`,`proDate`,`dateOfPro`,`shipDate`,`clinicName`,`doctor`,`created`,`doctorEmail`,`doctorMobile`,`treatTime`,`treatDesc`,`patient`,`patientEmail`,`remark`) VALUES (3,0,'2DFBD1-9E27-CFFD-6846-459CA9E9','第二車間',1460476800,1459008000,1463068800,'某醫院','某醫生',1460507802,'d@a.com','13333333333','','牙','某某某','c@a.com','asfasdf')

用PHP執行上面的語句,不出現在錯誤也不拋出異常。
已經開啟了pdo的拋出異常模式

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

但是用phpmyadmin執行會出現如下錯誤

回答已刪除,見諒

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.