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

पीडीओ का उपयोग करके सहायक फ़ंक्शन डालें/अपडेट करें

मेरे पास आमतौर पर पीडीओ का विस्तार करने वाला वर्ग होता है, लेकिन मेरी कक्षा बहुत ही रिवाज है। अगर मैं इसे साफ और परीक्षण कर लेता हूं तो मैं इसे बाद में पोस्ट करूंगा। हालांकि, आपके सिस्टम का समाधान यहां दिया गया है।

function dbSet($fields, &$values) {
    $set = '';
    $values = array();

    foreach ($fields as $field) {
        if (isset($_POST[$field])) {
            $set .= "`$field` = ?,";
            $values[] = $_POST[$field];
        }
    }

    return rtrim($set, ',');
}

$fields = explode(" ","name surname lastname address zip fax phone date");
$_POST['date'] = $_POST['y']."-".$_POST['m']."-"$_POST['d'];

$query  = "UPDATE $table SET ".dbSet($fields, $values).", stamp=NOW() WHERE id=?";
$values[] = $id;

$dbh->prepare($query);
$dbh->execute($values);  

यह सही नहीं हो सकता है और ट्विकिंग का उपयोग कर सकता है। यह ध्यान में रखता है कि $dbh एक पीडीओ कनेक्शन के साथ सेटअप है। मेरे द्वारा किए गए किसी भी मामूली वाक्यविन्यास मुद्दों को लंबित करना, जो काम करना चाहिए।

संपादित करें

वास्तव में, मुझे लगता है कि मैं सिद्धांत ओआरएम (या कोई अन्य ओआरएम) के लिए जाऊंगा। जैसा कि आप मॉडल को सेटअप करते हैं और वहां सभी सत्यापन जोड़ते हैं, तो यह उतना ही सरल है:

$table = new Table();
$table->fromArray($_POST);
$table->save();

यह सामग्री को आसानी से पॉप्युलेट करना चाहिए। यह निश्चित रूप से एक ओआरएम के साथ है, जैसे सिद्धांत।

अपडेट किया गया

क्या पहले कोड में कुछ मामूली बदलाव किए गए, जैसे isset वापस जाएं और rtrim . का उपयोग करें substr . से अधिक . पीडीओ एक्सटेंशन क्लास का मॉक अप प्रदान करने पर काम करने के लिए बस इसे करने का तरीका लेआउट करना होगा और यह सुनिश्चित करने के लिए कुछ यूनिट परीक्षण करना होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:वैकल्पिक तालिका यदि स्तंभ मौजूद नहीं है

  2. लिनक्स टर्मिनल पर MySQL का उपयोग करने का एक सरल परिचय

  3. Laravel 8 सॉफ्ट डिलीट को पूरा करें और हटाए गए रिकॉर्ड्स ट्यूटोरियल को पुनर्स्थापित करें

  4. कौन सा तेज़ है:एकाधिक एकल INSERT या एक बहु-पंक्ति INSERT?

  5. MySQL COALESCE () समझाया गया