Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

वास्तव में CONCAT_WS के साथ संघर्ष कर रहा है ... कृपया एक नौसिखिया की मदद करें :)

पहली चीज़ जो मैं देख सकता हूँ वह है आपका sprintf() दो प्रतिस्थापन पैरामीटर हैं लेकिन केवल एक प्लेसहोल्डर है। मुझे लगता है कि आपका मतलब वास्तव में था

$updateSQL = sprintf ("UPDATE Leads SET Notes = CONCAT_WS('\n', Notes, %s) WHERE Id=%d",
    GetSQLValueString($_POST['note'], "text"),
    GetSQLValueString($_POST['Id'], "int"));

साथ ही, आपका GetSQLValueString() फ़ंक्शन स्वचालित रूप से "टेक्स्ट" पैरामीटर को उद्धरणों के साथ लपेटता है, इसलिए आपको प्लेसहोल्डर के आसपास के उद्धरणों को निकालना होगा।

मैंने आईडी प्लेसहोल्डर को भी %d . में बदल दिया है जैसा कि मुझे लगता है कि आप एक संख्या की अपेक्षा कर रहे हैं।

विकास के लिए त्रुटि रिपोर्टिंग सक्षम करने से आपको लाभ हो सकता है। यह त्रुटि (और संभावित रूप से अपरिभाषित $Notes . के संबंध में एक और त्रुटि वेरिएबल) ने डिबगिंग को आसान बना दिया होगा।

इसे अपनी स्क्रिप्ट के शीर्ष पर रखें (केवल विकास के लिए)

ini_set('display_errors', 'On');
error_reporting(E_ALL);

व्यक्तिगत धर्मयुद्ध

MySQL लाइब्रेरी को छोड़ दें और अपना कोड PDO में ले जाएं, आप पीछे मुड़कर नहीं देखेंगे।

$stmt = $db->prepare('UPDATE Leads SET Notes = CONCAT_WS(:sep, Notes, :note) WHERE Id = :id');
$stmt->execute(array(
    'sep'  => PHP_EOL,
    'note' => $_POST['note'],
    'id'   => $_POST['Id']
));

बेहतर तरीका

माता-पिता "लीड" और निर्माण टाइमस्टैम्प के साथ एक विदेशी कुंजी संबंध के साथ प्रत्येक नोट प्रविष्टि को एक अलग तालिका में संग्रहीत करने पर विचार करें। इस तरह, आप बस सभी चाइल्ड नोट प्रविष्टियों को सृजन क्रम में पुनः प्राप्त कर सकते हैं और नई प्रविष्टियाँ बस सम्मिलित कर दी जाती हैं।

CREATE TABLE LeadNotes (
    id         INT NOT NULL AUTO_INCREMENT,
    lead_id    INT,
    note       TEXT,
    created_dt TIMESTAMP,
    PRIMARY KEY (id),
    FOREIGN KEY (lead_id) REFERENCES Leads (Id)
        ON DELETE CASCADE
) ENGINE=INNODB;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मोंगो डेटाबेस में छवि फ़ाइलों को संग्रहीत करना, क्या यह एक अच्छा विचार है?

  2. mysql रूट पासवर्ड बाकी

  3. प्रॉक्सीएसक्यूएल-व्यवस्थापक विकल्प - क्लस्टरकंट्रोल प्रॉक्सीएसक्यूएल जीयूआई

  4. MAX(Column) मुझे गलत मान देता है

  5. MYSQL_ROOT_PASSWORD सेट है, लेकिन डॉक कंटेनर में उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग करके:हाँ) के लिए एक्सेस अस्वीकृत हो रहा है