sql >> Database teknologi >  >> RDS >> Mysql

Apostrof og kolon i smukke links

Først og fremmest ser ideen om at gemme undslupne strenge i databasen mærkelig ud. MySQL er i stand til at gemme strenge af vilkårlige tegn og kan endda sikkert gemme binære sekvenser.

Nu om kortlægning fra rigtige titler til smukke URL'er og tilbage. Ideen om at konvertere titel til URL-venlig streng og derefter tilbage er ikke den almindelige måde at løse dit problem på, fordi det er meget svært at gøre en sådan konvertering reversibel. Den sædvanlige måde at løse dette problem på er at have en separat kolonne i databasen, der indeholder bogtitlen, der er ændret til at være URL-venlig. Også værdier i denne kolonne skal gøres unikke. Tabellen kunne se sådan ud:

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

Du bør indeksere din tabel efter disse kolonner og bruge den i stedet for book_title i SQL-forespørgsel inde i din viewbook.php script som dette:

SELECT * FROM books WHERE book_title_url='$booktitle'
 

Hvor $booktitle indeholder bogtitel modtaget via $_GET['booktitle'] og korrekt undslippet for at forhindre SQL-injektioner.

Så dine smukke webadresser vil se ud som http://www.example.com/title/why-can-t-i-be-you-a-novel og de vil blive omskrevet af Apache til noget som http://www.example.com/viewbook.php?booktitle=why-can-t-i-be-you-a-novel .

Igen, det er en almindelig måde, hvordan smukke URL'er normalt implementeres. håber det også vil virke for dig.

For eksisterende poster kan du udfylde book_title_url kolonne ved noget som dette:

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


  1. Kopier data fra en tabel til en anden OG tilføj yderligere data

  2. Automatisk udfyldning af tekstboks afhængigt af dropdown-værdi

  3. sql-forespørgsel med if-statment

  4. SQL-forespørgsel til at matche sælgere og købere