Pereiti prie turinio

PHP paieska su kryngeliais ir SQL


Rekomenduojami pranešimai

Sveiki, niekaip nesiseka padaryti paprasto paiekos skriptuko kuris is duomenu bazes lenteles surastu duomenis ir juos atavaizduotu php.

pvz i sql irasius zodi Devil's per php jis ten atsiranda

Devil & # 3 9 ; s  

pavidalu, nu typo sql apsauga kiek suprantu. atliekant paieska su zodziu Devil's jokiu rezultatu nemeta, o atlikus paieska su zodziu

Devil & # 3 9 ; s  

rezultatai yra.

PHP kodas:

 

$text = str_replace("'","", $_GET['search']);

if($text == ''){
	$text = "Įveskite pavadinimą.";
}

Redagavo Undead
Nuoroda į pranešimą
Dalintis kituose puslapiuose

$text = htmlspecialchars($_GET['search']);

if($text == ''){
       $text = "Įveskite pavadinimą.";
}

 

neveikia, ismeta errora:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%' OR name2 LIKE '%'%'' at line 1

 

$text = htmlspecialchars($_GET['search']);

if($text == ''){
	$text = "Įveskite pavadinimą.";
}

$rows = dbcount("(*)", "table_name", "");	
$result = dbquery("SELECT * FROM table_name WHERE name LIKE '%$text%' OR name2 LIKE '%$text%'");

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Visu pirma tai mysql neturi budo kaip susidoroti su html entities. Visu antra - nedek teksto su entities i DB nes tai kvaila ir turesi problemu veliau su consistency.

 

Geriausia ka galiu pasiulyti, tai pasikoreguoti apacioje esanti koda ir istaisyti klaidas DB:

$tables = array('users', 'users_more', 'users_extra', 'forum_posts', 'posts_edits', 'forum_threads', 'orders', 'product_comments', 'products', 'favourites', 'blocked', 'notes');
foreach($tables as $table)
   {       
       $sql = "SELECT * FROM {$table} WHERE data_date_ts < '{$encode_cutoff}'";
       $rows = $database->query($sql);
       while($row = mysql_fetch_assoc($rows))
           {
               $new = array();
               foreach($row as $key => $data)
                   {
                       $new[$key] = $database->escape_value(html_entity_decode($data, ENT_QUOTES, 'UTF-8'));
                   }
               array_shift($new);
               $new_string = "";
               $i = 0;
               foreach($new as $new_key => $new_data)
                   {
                       if($i > 0) { $new_string.= ", "; }
                       $new_string.= $new_key . "='" . $new_data . "'";
                       $i++;
                   }
               $sql = "UPDATE {$table} SET " . $new_string . " WHERE id='" . $row['id'] . "'";
               $database->query($sql);
               // plus some code to check that all out
           }
   }

Redagavo Ispirit
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...