Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apostrof dan Titik Dua di Tautan Cantik

Pertama-tama, ide menyimpan string yang lolos dalam database terlihat aneh. MySQL mampu menyimpan string karakter arbitrer dan bahkan dapat menyimpan urutan biner dengan aman.

Sekarang tentang pemetaan dari judul asli ke URL cantik dan seterusnya. Gagasan untuk mengonversi judul menjadi string ramah-URL dan kemudian kembali bukanlah cara umum untuk menyelesaikan masalah Anda, karena sangat sulit untuk membuat konversi semacam itu dapat dibalik. Cara biasa untuk mengatasi masalah ini adalah dengan membuat kolom terpisah di database yang berisi judul buku yang dimodifikasi agar ramah URL. Juga nilai dalam kolom ini harus dibuat unik. Tabelnya bisa terlihat seperti ini:

+-----+-----------------------------+----------------------------+
| BID | book_title                  | book_title_url             |
+-----+-----------------------------+----------------------------+
|   1 | Why Can't I Be You: A Novel | why-can-t-i-be-you-a-novel |
+-----+-----------------------------+----------------------------+

Anda harus mengindeks tabel Anda dengan kolom ini dan menggunakannya sebagai ganti book_title dalam kueri SQL di dalam viewbook.php Anda scriptnya seperti ini:

SELECT * FROM books WHERE book_title_url='$booktitle'

Dimana $booktitle berisi judul buku yang diterima melalui $_GET['booktitle'] dan lolos dengan benar untuk mencegah injeksi SQL.

Jadi URL cantik Anda akan terlihat seperti http://www.example.com/title/why-can-t-i-be-you-a-novel dan mereka akan ditulis ulang oleh Apache menjadi seperti http://www.example.com/viewbook.php?booktitle=why-can-t-i-be-you-a-novel .

Sekali lagi, ini adalah cara umum bagaimana URL cantik biasanya diterapkan. semoga berhasil juga untuk Anda.

Untuk catatan yang ada, Anda dapat mengisi book_title_url kolom dengan sesuatu seperti ini:

UPDATE books SET book_title_url=REPLACE(REPLACE(REPLACE(book_title, " ", "-"), ":", "-"), "'", "-");


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. menggabungkan dua pernyataan pilihan

  2. Gambaran Umum Replikasi Silang PostgreSQL &MySQL

  3. MariaDB – MySQL – Tampilkan Mesin untuk Menampilkan Semua Mesin yang Tersedia dan Didukung

  4. URL Tulis ulang basis data kueri?

  5. Apakah mungkin untuk menanyakan tabel struktur pohon di MySQL dalam satu kueri, hingga kedalaman apa pun?