Soalan:
Apabila berhijrah dari mysql_* ke PDO, apakah persamaannya mysql_real_escape_string function?
Jawapan:
Tidak seperti mysql_real_escape_string, PDO melakukan pelarian automatik melalui penggunaan pernyataan yang disediakan. Penyata yang disediakan menggunakan ruang letak (cth., ?) dan bukannya memasukkan input pengguna secara langsung ke dalam pertanyaan SQL, menghalang kelemahan suntikan SQL.
Contoh:
<code class="php">try { $db = new PDO(...); } catch (PDOException $e) { echo "Error connecting to mysql: " . $e->getMessage(); } if (isset($_POST['color'])) { $stmt = $db->prepare("SELECT id, name, color FROM Cars WHERE color = ?"); $stmt->execute([$_POST['color']]); $cars = $stmt->fetchAll(\PDO::FETCH_ASSOC); var_dump($cars); }</code>
Dalam contoh ini , $_POST['color'] diluluskan sebagai parameter dalam pernyataan yang disediakan, melindungi pertanyaan daripada suntikan.
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Melarikan Input Pengguna Apabila Berhijrah dari mysql_* ke PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!