यह स्पष्ट रूप से नहीं है और यदि आपने वास्तव में किसी पुस्तक या ट्यूटोरियल में पढ़ा है तो आपको इसे भविष्य के संदर्भ के लिए स्वचालित रूप से त्यागना चाहिए।
हालांकि, यह आउटपुट उत्पन्न करने का एक व्यावहारिक तरीका हो सकता है जिसके लिए आगे की प्रक्रिया की आवश्यकता होती है। तुलना करें:
echo '<p>Hello, <strong></strong>' . htmlspecialchars($name) . ', welcome to ' . htmlspecialchars($place). '</p>';
echo sprintf('<p>Hello, <strong>%s</strong>, welcome to %s</p>',
htmlspecialchars($name),
htmlspecialchars($place)
);
एक ही तरह के एसक्यूएल कोड के रूप में उत्पादन, अन्य प्रकार के लिए लागू होता है, लेकिन निश्चित रूप से आप अभी भी बनाने के लिए यह सुरक्षित में इनपुट के लिए कुछ करने की जरूरत है: sprintf() सिर्फ एक नियमित रूप से स्ट्रिंग समारोह है यह एसक्यूएल और डेटाबेस से अनजान है।
कृपया ध्यान दें कि बाँध मापदंडों एक समान सिंटैक्स का उपयोग करें:
// Fictional DB abstraction layer
$sql = 'SELECT foo_id
FROM foo
WHERE name=:name AND status=:status';
$params = array(
'name' => $name,
'status' => $status,
);
$result = $db->run($sql, $params);
है यही कारण है कि मैं विशेष रूप से उन डीबी पुस्तकालयों कि इस तरह के पीडीओ के रूप में इस वाक्य रचना, प्रदान उपयोग करने के लिए आसान लगता है।
स्रोत
2011-07-11 07:10:10
* कौन सा * लोग ऐसी चीज की सिफारिश करते हैं? – Tomalak
आप शायद क्या मतलब है तैयार कथन है, जो एक अलग विषय है। 'Me_real_escape_string', LOL के लिए – Gal