2012-04-12 7 views
6

मैं पीडीओ का उपयोग करके MySQL में एक रिकॉर्ड डालने का प्रयास कर रहा हूं, मेरा एसक्यूएल स्टेटमेंट निम्नलिखित कोड में देखा जा सकता है।एसक्यूएलएसटीएटी [42 एस 22]: कॉलम नहीं मिला: 1054 अज्ञात कॉलम

<?php 
    try{ 
     //include file myfunctions.php allows us to calls functions from it 
     include ("myfunctions.php"); 
     //Assign function getConnection() from myfunctions.php to variable $db 
     $db = getConnection(); 


     foreach($_POST['chk'] as $check_value) 
     { 
      $check = $check_value; 
      $fav = "channel/item [title = \"$check\"]"; 
      $holidayDoc = simplexml_load_file('holidays.xml'); 
      $favourites = $holidayDoc->xpath($fav); 

     foreach($favourites as $currentFav) 
     { 
      echo "{$currentFav->link}". "<br \>"; 
      echo "{$currentFav->title}". "<br \>"; 
      echo "{$currentFav->description}". "<br \>"; 
      echo "{$currentFav->pubDate} ". "<br \>"; 

      $sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`) 
      VALUES (`John`, `$currentFav->link`, `$currentFav->pubDate`, `$currentFav->title`, `$currentFav->description`)"; 

      $db->exec($sql); 
      $db = null; 
     } 
    } 
} 
     catch(PDOException $e) 
     { 
      echo $e->getMessage(); 
     } 
?> 

जब यह कोड निष्पादित किया जाता है तो मुझे निम्न त्रुटि संदेश से मुलाकात की जाती है;

SQLSTATE [42S22]: नहीं मिला कॉलम: 1054 अज्ञात स्तंभ में 'जॉन' 'क्षेत्र सूची'

यह कोई संदेह नहीं है इस समस्या का एक सरल उपाय है, लेकिन मैं यह देखने के लिए नहीं कर पा रहे , क्या कोई मुझे सही दिशा दिखा सकता है?

उत्तर

12

मेरा मानना ​​है कि इस वजह से आप अपने मूल्यों के लिए बैकटिक उपयोग कर रहे हैं के लिए उपयोग 'के लिए उपयोग `। उन्हें एकल उद्धरण के लिए परिवर्तित करें और आप अच्छा

$sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`) 
      VALUES ('John', '$currentFav->link', '$currentFav->pubDate', '$currentFav->title', '$currentFav->description')"; 

to this SO question about single quotes versus backticks देखें आप अधिक जानकारी

+0

दिलचस्प लिंक के लिए धन्यवाद, जोर से स्वीकार करेंगे। –

2
$sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`) 
      VALUES ('John', '$currentFav->link', '$currentFav->pubDate', '$currentFav->title', '$currentFav->description')"; 

केवल खेतों और मूल्यों

2

चाहते हैं, तो होना चाहिए `क्षेत्रों निर्दिष्ट करने के लिए, आप मूल्यों के लिए एक भी बोली ' का उपयोग करना चाहिए है।

$sql = "INSERT INTO `saved_holidays` (`subscriberID`, `link`, `pubDate`, `title`, `description`) 
     VALUES ('John', '$currentFav->link', '$currentFav->pubDate', '$currentFav->title', '$currentFav->description')"; 
संबंधित मुद्दे