Dalam aplikasi web PHP/MySQL, isu sambungan pangkalan data timbul disebabkan oleh tingkah laku yang tidak dijangka yang melibatkan tanda dolar ($ ) aksara dalam rentetan kata laluan.
Masalah berlaku apabila kata laluan mengandungi aksara $, menyebabkan ia dianggap sebagai pembolehubah. Rentetan $_DB["kata laluan"] = "mypas$word"; mengakibatkan kata laluan ditafsirkan sebagai "mypas" dan bukannya "mypas$word" yang dimaksudkan.
Untuk menyelesaikan isu ini, penyelesaiannya adalah untuk melarikan aksara $ menggunakan garis serong ke belakang, seperti dalam $_DB["kata laluan "] = "mypas$word";. Ini secara berkesan menghalang $ daripada dikenal pasti sebagai pembolehubah, menyebabkan kata laluan yang betul dihantar.
Timbul persoalan tentang amalan terbaik untuk mengendalikan situasi sedemikian. Rentetan petikan tunggal, seperti $_DB['kata laluan'] = 'mypas$word';, jangan memproses aksara khas dan mentafsir rentetan itu sebagaimana adanya. Pendekatan ini disyorkan untuk kedua-dua kecekapan dan kebolehpercayaan, kerana ia mengelakkan potensi ralat penggantian berubah-ubah.
Selain itu, ia dipersoalkan sama ada isu ini akan timbul jika kata laluan disimpan dalam pangkalan data dan diambil oleh PHP. Jawapannya ya, kerana PHP masih akan mentafsirkan aksara $ sebagai pembolehubah melainkan dilepaskan secara eksplisit.
Ringkasnya, adalah penting untuk melepaskan tanda dolar dalam rentetan kata laluan apabila bekerja dengan aplikasi PHP/MySQL. Rentetan petikan tunggal diutamakan kerana kesederhanaannya dan untuk mengelakkan tingkah laku yang tidak dijangka yang disebabkan oleh penggantian berubah-ubah.
Atas ialah kandungan terperinci Mengapa Tanda Dolar ($) dalam Rentetan Kata Laluan Menyebabkan Isu dalam Aplikasi PHP/MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!