यदि आप पीडीओ पर स्विच करने जा रहे हैं, तो आप तैयार कथनों और पैरामीटर बाइंडिंग का भी लाभ उठा सकते हैं। यह वास्तव में आपके प्रश्नों को बहुत बनाता है SQL इंजेक्शन से सुरक्षित है और आपके कोड को और अधिक पठनीय बनाता है। आपका क्वेरी निर्माता दृष्टिकोण चीजों को थोड़ा जटिल करता है लेकिन यह अभी भी संभव है। मैं विकास के दौरान त्रुटि रिपोर्टिंग को सक्षम करने की अत्यधिक अनुशंसा करता हूं। उदाहरण के लिए
error_reporting(E_ALL);
ini_set('display_errors', 'On');
$upd = array('name = :name', 'type = :type');
$values = array(
'name' => $name,
'type' => $type,
'ride_id' => $ride_id,
'park_id' => $park_id
);
if (!empty($topride)) {
$upd[] = 'top_ride = :topride'; // :topride is the named parameter placeholder
$values['topride'] = $topride; // the array key matches the named placeholder above
}
if (!empty($info)) {
$upd[] = 'info = :info';
$values['info'] = $info;
}
// and so on
$query = sprintf('UPDATE tpf_rides SET %s WHERE ride_id = :ride_id AND park_id = :park_id',
implode(', ', $upd));
$stmt = $pdo->prepare($query);
$stmt->execute($values);