मैंने एक स्क्रिप्ट बनाई है जो एक डेटाबेस से सामान आयात करती है और इसे दूसरे में डालती है; समस्या यह है कि यह संदेश के साथ टूट जाता है:

PDOException: hcap_import_do() (/mnt/hgfs/docroot/hcapdrupal/site_drupal/public_html/sites/all/modules/custom/hcap/hcap.module की पंक्ति 215) में।

कोड है कि निम्नलिखित एक:

db_insert('hcap_candidates')->fields(array(
  'id' => $e['old_id'],
  'pic' => $e['logo'],
  'placed' => $e['placed'],
  'title' => $e['title'],
  'name' => $e['name'],
  'interim' => $e['interim'],
  'permanent' => $e['permanent'],
  'birth' => $e['birth'],
  'marital_status' => $e['marital'],
  'adress' => $e['address'],
  'city' => $e['city'],
  'postal' => $e['postal'],
  'phone_home' => $e['phone_home'],
  'phone_work' => $e['phone_work'],
  'phone_mobile' => $e['phone_mobile'],
  'email1' => $e['email1'],
  'email2' => $e['email2'],
  'reg_by' => $e['reg_by'],
  'cand_head' => $e['cand_head'],
  'cand_body' => $e['cand_body'],
  'prominent' => $e['prominent'],
  'broadcast' => $e['broadcast'],
  'cv' => $e['cv'],
  'old_id' => $e['old_id']
))->execute();  // This is line 215.

क्या किसी के पास कोई सुराग है कि क्या गलत है?

0
tobbr 11 अगस्त 2011, 00:27

2 जवाब

सबसे बढ़िया उत्तर

त्रुटि के बारे में अधिक जानने के लिए आप "कोशिश करें ... पकड़ें" ब्लॉक का उपयोग कर सकते हैं। क्वेरी क्यों विफल हो रही है, यह समझने के लिए मुझे और अधिक कोड और तालिका संरचना की आवश्यकता होगी, लेकिन वाक्यविन्यास सही प्रतीत होता है।

यदि आप सुनिश्चित नहीं हैं, तो PHP में "कोशिश ... पकड़" ब्लॉक कैसा दिखता है:

<?php
try {
db_insert('hcap_candidates')
  ->fields(
    array(
      'id' => $e['old_id'],
      'pic' => $e['logo'],
      'placed' => $e['placed'],
      'title' => $e['title'],
      'name' => $e['name'],
      'interim' => $e['interim'],
      'permanent' => $e['permanent'],
      'birth' => $e['birth'],
      'marital_status' => $e['marital'],
      'adress' => $e['address'],
      'city' => $e['city'],
      'postal' => $e['postal'],
      'phone_home' => $e['phone_home'],
      'phone_work' => $e['phone_work'],
      'phone_mobile' => $e['phone_mobile'],
      'email1' => $e['email1'],
      'email2' => $e['email2'],
      'reg_by' => $e['reg_by'],
      'cand_head' => $e['cand_head'],
      'cand_body' => $e['cand_body'],
      'prominent' => $e['prominent'],
      'broadcast' => $e['broadcast'],
      'cv' => $e['cv'],
      'old_id' => $e['old_id'],
    )
  )
  ->execute();
}
catch (PDOException $e) {
  print_r($e->getMessage());
}
?>

आपकी क्वेरी के साथ शायद एक साधारण समस्या है (hcap_candidates नामक कोई तालिका नहीं है, उस तालिका में कोई फ़ील्ड नहीं है जिसे marital_status, आदि कहा जाता है)। अपवाद संदेश आपको वह सब कुछ बता देना चाहिए जो आपको जानना चाहिए।

बीटीडब्ल्यू, प्रिंट_आर ब्राउज़र में आउटपुट देखने का केवल एक त्वरित और गंदा तरीका है। आप वॉचडॉग, drupal_set_message...

1
DefiniteIntegral 11 अगस्त 2011, 02:24
कोशिश विधि ने वास्तव में एक SQLSTATE त्रुटि उत्पन्न की, जो वही है जो मैं चाहता था। बहुत - बहुत धन्यवाद!
 – 
tobbr
11 अगस्त 2011, 09:10
ड्रुपल त्रुटियों को हल करने के लिए ट्राइ कैच एक अच्छा विचार है... धन्यवाद!
 – 
scott
4 सितंबर 2012, 18:59

मैं समस्या को ठीक से नहीं जानता लेकिन सुनिश्चित करें कि आपने निम्नलिखित चरणों को लागू किया है

1- आपने अपनी सेटिंग्स में 2 डेटाबेस को परिभाषित किया है। php फ़ाइल

2- आप उपयोग करते हैं db_set_active("database2name"); {database2name} में अपना डेटा डालने से पहले

0
maged adel 11 अगस्त 2011, 02:10