Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Skrip PHP Saya Gagal Disambungkan ke MySQL Apabila Kata Laluan Mengandungi Tanda Dolar?

Mengapa Skrip PHP Saya Gagal Disambungkan ke MySQL Apabila Kata Laluan Mengandungi Tanda Dolar?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-07 22:10:02641semak imbas

Why Does My PHP Script Fail to Connect to MySQL When the Password Contains a Dollar Sign?

Dollar ($) Log Masuk Rentetan Kata Laluan Disalahtafsirkan sebagai Pembolehubah

Apabila menghadapi masalah sambungan dengan aplikasi web PHP/MySQL walaupun capaian pangkalan data berjaya dengan bukti kelayakan yang sama melalui shell dan phpMyAdmin, adalah penting untuk mempertimbangkan kemungkinan isu dalam kod.

Punca Masalah

Dalam senario ini, rentetan kata laluan mengandungi tanda dolar ($), yang ditafsirkan PHP sebagai pembolehubah. Akibatnya, daripada menghantar kata laluan yang dimaksudkan "mypas$word," aplikasi menghantar "mypas," yang membawa kepada pengesahan pangkalan data yang gagal.

Penyelesaian

Masalah telah diselesaikan dengan melepaskan tanda dolar dengan garis miring ke belakang (). Walau bagaimanapun, penyelesaian yang lebih dipercayai dan cekap ialah menggunakan rentetan petikan tunggal untuk kata laluan dan data lain yang tidak sepatutnya menjalani pemprosesan pembolehubah PHP.

Melepaskan Tanda Dolar

Menggunakan garis miring ke belakang untuk melepaskan tanda dolar membolehkan PHP menganggapnya sebagai aksara literal dan bukannya arahan untuk menggantikan pembolehubah. Pendekatan ini adalah memadai tetapi tidak optimum, kerana ia memperkenalkan sintaks tambahan dan potensi ralat pengguna.

Rentetan Petikan Tunggal

Rentetan petikan tunggal tidak diinterpolasi dan dianggap secara verbatim . Ini bermakna PHP tidak akan cuba memproses aksara khas atau mengembangkan pembolehubah dalam rentetan petikan tunggal, memastikan pemeliharaan data tepat yang bertujuan untuk disimpan.

Pertimbangan Pangkalan Data

Jika kata laluan diambil daripada pangkalan data, prinsip yang sama digunakan. Kata laluan hendaklah disimpan dalam satu rentetan petikan dalam pangkalan data untuk mengelakkan sebarang salah tafsir oleh PHP.

Amalan Terbaik

Untuk mengelakkan jenis isu ini, ia disyorkan untuk mematuhi amalan terbaik berikut:

  • Gunakan rentetan petikan tunggal untuk kata laluan dan data sensitif yang lain.
  • Escape aksara khas apabila menggunakan rentetan petikan berganda.
  • Berhati-hati apabila menggunakan tanda dolar dan aksara lain yang mungkin ditafsirkan sebagai pembolehubah.
  • Sahkan input untuk memastikan format data yang dijangkakan disediakan.

Atas ialah kandungan terperinci Mengapa Skrip PHP Saya Gagal Disambungkan ke MySQL Apabila Kata Laluan Mengandungi Tanda Dolar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn