2012-01-16 9 views
12

मैं निम्नलिखित कोड है, जहां $ क्वेरी एक प्रश्न एक सिद्धांत क्वेरी बिल्डर का उपयोग करके बनाया है का उपयोग कर एक प्रस्तुत Zend फार्म जो अद्यतन करता है एक सिद्धांत रिकार्ड प्रसंस्करण कर रहा हूँ:सामान्य त्रुटि: सिद्धांत 2.1 और Zend फार्म के साथ 1366 में गलत पूर्णांक मान अद्यतन

$record_array = $query->getResult(); 
$this->_record = $record_array[0]; 
if($this->getRequest()->isPost()) 
    { 
     if ($this->_form->isValid($this->_request->getPost())) 
     { 
      $newEntity = $this->_form->update($this->_record); 
      $this->_em->flush(); 
      $this->view->success = 'Record Saved.'; 
     } else { 
      $this->view->errors = $this->_form->getErrors(); 
     }   
    } 

उपरोक्त काम ठीक है अगर रिकॉर्ड में कोई पूर्णांक नहीं है, यानी केवल स्ट्रिंग्स। हालांकि, मुझे उपरोक्त त्रुटि मिलती है यदि मैं उस फॉर्म पर फ़ील्ड्स शामिल करता हूं जो सिद्धांत इकाई में पूर्णांक के रूप में मैप किए जाते हैं।

किसी भी मदद की सराहना की जाएगी।

अद्यतन:

/** 
* @var integer $solicitorid 
* 
* @Column(name="SolicitorID", type="integer", nullable=false) 
* @Id 
* @GeneratedValue(strategy="IDENTITY") 
*/ 
private $solicitorid; 

/** 
* @var string $solicitor 
* 
* @Column(name="Solicitor", type="string", length=160, nullable=true) 
*/ 
private $solicitor; 

/** 
* @var string $address 
* 
* @Column(name="Address", type="string", length=160, nullable=true) 
*/ 
private $address; 

/** 
* @var string $town 
* 
* @Column(name="Town", type="string", length=100, nullable=true) 
*/ 
private $town; 

/** 
* @var string $county 
* 
* @Column(name="County", type="string", length=100, nullable=true) 
*/ 
private $county; 

/** 
* @var string $postcode 
* 
* @Column(name="Postcode", type="string", length=100, nullable=true) 
*/ 
private $postcode; 

/** 
* @var string $dxaddress 
* 
* @Column(name="DXAddress", type="string", length=150, nullable=true) 
*/ 
private $dxaddress; 

/** 
* @var string $phone 
* 
* @Column(name="phone", type="string", length=30, nullable=true) 
*/ 
private $phone; 

/** 
* @var string $fax 
* 
* @Column(name="fax", type="string", length=30, nullable=true) 
*/ 
private $fax; 

/** 
* @var string $email 
* 
* @Column(name="email", type="string", length=255, nullable=true) 
*/ 
private $email; 

/** 
* @var string $password 
* 
* @Column(name="password", type="string", length=30, nullable=false) 
*/ 
private $password; 

/** 
* @var integer $leadStatus 
* 
* @Column(name="lead_status", type="integer", nullable=true) 
*/ 
private $leadStatus; 

/** 
* @var string $termsref 
* 
* @Column(name="termsRef", type="string", length=10, nullable=true) 
*/ 
private $termsref; 

/** 
* @var integer $termsconditions 
* 
* @Column(name="termsconditions", type="integer", nullable=true) 
*/ 
private $termsconditions; 

/** 
* @var date $termssent 
* 
* @Column(name="termsSent", type="date", nullable=true) 
*/ 
private $termssent; 

/** 
* @var date $termssigneddate 
* 
* @Column(name="termssigneddate", type="date", nullable=true) 
*/ 
private $termssigneddate; 

/** 
* @var integer $paymentterms 
* 
* @Column(name="paymentterms", type="integer", nullable=true) 
*/ 
private $paymentterms; 

/** 
* @var integer $discountterms 
* 
* @Column(name="discountterms", type="integer", nullable=true) 
*/ 
private $discountterms; 

/** 
* @var float $discountrate 
* 
* @Column(name="discountrate", type="float", nullable=true) 
*/ 
private $discountrate; 

/** 
* @var integer $accountscontact 
* 
* @Column(name="AccountsContact", type="integer", nullable=true) 
*/ 
private $accountscontact; 

/** 
* @var date $warned 
* 
* @Column(name="warned", type="date", nullable=true) 
*/ 
private $warned; 

/** 
* @var float $feerate 
* 
* @Column(name="FeeRate", type="float", nullable=true) 
*/ 
private $feerate; 

/** 
* @var string $labourrate 
* 
* @Column(name="LabourRate", type="string", length=100, nullable=true) 
*/ 
private $labourrate; 

/** 
* @var text $specialinst 
* 
* @Column(name="SpecialInst", type="text", nullable=true) 
*/ 
private $specialinst; 

/** 
* @var text $reportinst 
* 
* @Column(name="ReportInst", type="text", nullable=true) 
*/ 
private $reportinst; 

/** 
* @var boolean $autostatement 
* 
* @Column(name="AutoStatement", type="boolean", nullable=true) 
*/ 
private $autostatement; 

/** 
* @var datetime $lastmodifed 
* 
* @Column(name="lastModifed", type="datetime", nullable=false) 
*/ 
private $lastmodifed; 

ऊपर इकाई है। समस्या तब आती है जब मैं एक पूर्णांक फ़ील्ड को अद्यतन करने का प्रयास करता हूं।

उत्तर

29

क्या आप MySQL का उपयोग कर रहे हैं? ऐसा इसलिए हो सकता है क्योंकि MySQL सख्त मोड में चल रहा है। phpMyAdmin या जो कुछ भी डाटाबेस प्रशासक आप यदि डेटाबेस सख्त मोड में है की जाँच करने के प्रयोग कर रहे हैं से इन प्रश्नों चलाएँ:

SELECT @@GLOBAL.sql_mode; 
SELECT @@SESSION.sql_mode; 

अगर यह रिटर्न कुछ युक्त STRICT_TRANS_TABLES आप कोशिश करते हैं और चला सकते हैं:

SET @@global.sql_mode= 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; 
+0

यह किया सख्त_trans_tables शामिल हैं, और आपके सुझाव ने इसे बंद कर दिया है। वास्तव में इसका क्या असर पड़ता है, यह पहले स्थान पर क्यों होना चाहिए? – Quanano

+0

यह बहुत सटीक है: "गैर-सख्त मोड में, MySQL सर्वर ग़लत इनपुट मानों को निकटतम कानूनी मानों (कॉलम परिभाषाओं से निर्धारित) में परिवर्तित करता है और इसके रास्ते पर जारी रहता है। उदाहरण के लिए, यदि आप ऋणात्मक मान को संग्रहीत करने का प्रयास करते हैं एक अनसुलझा कॉलम, MySQL इसे शून्य में परिवर्तित करता है, जो कॉलम के लिए निकटतम कानूनी मान है। " सख्त मोड में यह सीधे उन रूपांतरणों को छोड़ देगा और उस त्रुटि को फेंक देगा जिसे आप देख रहे हैं। हो सकता है कि आप उस इकाई के मैपिंग को पोस्ट कर सकें जिसे आप अपडेट करने का प्रयास कर रहे हैं, और वास्तविक डेटा जिसे आप इसे अपने फॉर्म में भेज रहे हैं – jere

संबंधित मुद्दे