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

एकल उद्धरण से बचने के लिए pdo तैयार करें

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

कुछ इस तरह का प्रयास करें:

$sql = "INSERT INTO anagrafiche SET
        id_ndg = :protocol,
        nick = :nick,
        nome = :nome,
        ...
        ";
$params = array(
    ':protocol' => $protocol,
    ':nick' => $nick,
    ':nome' => $nome,
    ...
); 
try{
    $s = $pdo->prepare($sql);               
    $s->execute($params);
} catch (PDOException $e) {
    ...
}

यह आपको SQL इंजेक्शन हमलों को कम करने का अतिरिक्त लाभ भी देता है।

यदि आप एक कदम आगे जाना चाहते हैं और डेटा प्रकारों को लागू करना चाहते हैं, तो आप bindValue() . का उपयोग कर सकते हैं या bindParam()

जैसे:

$sql = "INSERT INTO anagrafiche SET
        id_ndg = :protocol,
        nick = :nick,
        nome = :nome,
        ...
        "; 
try{
    $s = $pdo->prepare($sql);
    $s->bindParam(':protocol', $protocol, PDO::PARAM_ST);
    $s->bindParam(':nick', $nick, PDO::PARAM_ST);
    $s->bindParam(':nome', $nome, PDO::PARAM_ST);
    ...
    $s->bindParam(':some_integer', $some_integer, PDO::PARAM_INT);
    ...           
    $s->execute();
} catch (PDOException $e) {
    ...
}

bindValue() bindParam() . के समान सिंटैक्स है लेकिन केवल कथन निष्पादन के समय चर के मान के बजाय पैरामीटर के लिए बाध्य होने के समय चर के मान को बांधता है।




  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. ActiveRecord::ConnectionTimeoutError:5.000 सेकंड के भीतर डेटाबेस कनेक्शन प्राप्त नहीं कर सका (5.000 सेकंड प्रतीक्षा की गई)

  4. PHP से MySQL क्वेरी का निष्पादन समय कैसे प्राप्त करें?

  5. डेट रेंज बनाने के लिए LEFT JOIN कैसे करें?