webForumDet fria alternativet

Hur spärra tok-sökningar i MySQL?

PHP

1 svar · 340 visningar · startad av tompaah

Medlem sedan feb. 200010 inlägg
Frågan#1

Om man skriver

$searchstring = '%%%%';
mysql_query("SELECT fieldname FROM table WHERE fieldname = '%$searchstring%'");

så tar ju mysql_query fram alla kolumner ur table.

Finns det något enkelt sätt att kolla om $searchstring innehåller minst 3 andra bokstäver än %-tecken?

Alltså.. att funktionen godkänner

$searchstring = 'tre % var ute och %';

men inte

$searchstring = '%%%';
eftersom det senare skulle returnera allt?

Medlem sedan feb. 200010 inlägg
#2

Komplettering:

Det går även bra att begränsa $searchstring till följande regler:

måste vara fler än 2 tecken lång
måste innehålla minst två vanliga tecken

Ex: utför sökningen om $searchstring är
"b%%s", "%%tabas" eller "järnvä%%%%%%gsvagn"
men inte om $searchstring är
"%%", "i%" eller "h%%%%%%%%%%a"

Allt för att slippa att MySQL dumpar ut för mycket ur eller till och med hela databasen.

Hur göra?

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)