एक बेहतर तरीका है
आप टिप्पणियों में उल्लेख करते हैं कि आप कोडइग्निटर का उपयोग कर रहे हैं। जब तक आप कुछ असाधारण रूप से जटिल नहीं बना रहे हैं, तब तक कोई व्यावहारिक कारण नहीं है कि जब आपके पास where_in
में बनाया गया।
और अगर वह काम नहीं करता है, तो अच्छे पुराने जमाने के हैं escape
।
ठीक है, तो, आपके पास ज्यादातर लोग कह रहे हैं कि आपको वस्तुओं को उद्धृत करने की आवश्यकता है और आपको यह दे रहे हैं:
function createInClause($arr)
{
return '\'' . implode( '\', \'', $arr ) . '\'';
}
लेकिन यह वास्तव में पर्याप्त नहीं है यदि आपके पास संदिग्ध इनपुट की संभावना है (जैसे कि '); DROP TABLE STUDENTS; --
. इससे बचाव के लिए, आपको यह सुनिश्चित करना होगा कि आप SQL इंजेक्शन:
की जांच करें।
function createInClause($arr)
{
$tmp = array();
foreach($arr as $item)
{
// this line makes sure you don't risk a sql injection attack
// $connection is your current connection
$tmp[] = mysqli_escape_string($connection, $item);
}
return '\'' . implode( '\', \'', $tmp ) . '\'';
}