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

पीडीओ PHP एक सहयोगी सरणी से डीबी में डालें

पिछली बार जब मैंने जाँच की थी, तो एक स्टेटमेंट तैयार करना संभव नहीं था, जहाँ प्रभावित कॉलम तैयारी के समय अज्ञात थे - लेकिन यह बात काम करने लगती है - हो सकता है कि आपका डेटाबेस सिस्टम उन लोगों की तुलना में अधिक क्षमाशील हो, जिनका मैं उपयोग कर रहा हूँ (मुख्य रूप से पोस्टग्रेज)

स्पष्ट रूप से गलत क्या है implode() कथन, क्योंकि प्रत्येक चर को स्वयं द्वारा नियंत्रित किया जाना चाहिए, आपको सम्मिलित विवरण में फ़ील्ड सूची के चारों ओर कोष्ठक की भी आवश्यकता है।

उपयोगकर्ता परिभाषित फ़ील्ड डालने के लिए, मुझे लगता है कि आपको ऐसा कुछ करना होगा (कम से कम मैं इसे कैसे करता हूं);

$fields=array_keys($a); // here you have to trust your field names! 
$values=array_values($a);
$fieldlist=implode(',',$fields); 
$qs=str_repeat("?,",count($fields)-1);
$sql="insert into user($fieldlist) values(${qs}?)";
$q=$DBH->prepare($sql);
$q->execute($values);

यदि आप $a में फ़ील्ड नामों पर भरोसा नहीं कर सकते हैं, तो आपको कुछ ऐसा करना होगा

foreach($a as $f=>$v){
   if(validfield($f)){
      $fields[]=$f;
      $values[]=$v;
   }
}

जहां वैलिडफील्ड्स एक ऐसा फ़ंक्शन है जिसे आप लिखते हैं जो प्रत्येक फ़ील्डनाम का परीक्षण करता है और जांचता है कि क्या यह वैध है (एक सहयोगी सरणी बनाकर त्वरित और गंदा $valfields=array('name'=>1,'email'=>1, 'phone'=>1 ... और फिर सर्वर से फ़ील्ड नाम प्राप्त करके $valfields[$f], या (जैसा कि मैं पसंद करूंगा) के मूल्य की जांच कर रहा हूं)



  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 के साथ पांडा विधि to_sql का उपयोग करते समय एक और यूनिकोडएनकोड त्रुटि

  2. उपयोगकर्ता आईडी की सूची संग्रहीत करने का सर्वोत्तम तरीका

  3. MySQL डेटा स्रोत विजुअल स्टूडियो में नहीं दिख रहा है

  4. दूसरे कॉलम में ऑटोइनक्रिकमेंट डालें

  5. डेटाबेस में फ़ाइलों को ब्लॉब के रूप में सहेजना AJAX php pdo