mysql - mysql_real_escape_string ISSUE -


if type

'

into search bar mysql error "sting" has not been escaped- think.

but reason why cant escape because dont think string.

the search box generates search results dynamically ajax type , finds results error:

    have error in sql syntax; check manual corresponds mysql server version right syntax use near '%' or location '%'%' or map '%'%' limit 0, 16' @ line 2 

this mysql query:

<?php      if($_post['q']!=""){   include $_server['document_root'] . "/include/datebasecon.php";         $result = mysql_query("           select id, name, location,  map           accommodation name '%".$_post['q']."%' or location '%".$_post['q']."%' or map '%".$_post['q']."%' limit 0, 16")          or die(mysql_error());         $output = "";         while($row = mysql_fetch_array($result)){             $n = preg_replace("/(".$_post['q'].")/i","<span>$1</span>",$row['name']);             $l = preg_replace("/(".$_post['q'].")/i","<span>$1</span>",$row['location']);             $m = preg_replace("/(".$_post['q'].")/i","<span>$1</span>",$row['map']);             $output .= "<p>".$n." - ".$l."</p>";             }          print $output;      } ?> 

is there anyway can fix after post query maybe?

when magic_quotes_gpc off (as should be!), $_post['q'] string ', 1 character. that's why it's appearing in sql code this:

%' or location '%'%' or map '%'%' limit 0, 16 

the error takes place @ '%'%' because like string being prematurely terminated.

you can use mysql_real_escape_string() on $_post['q'] , it'll escaped:

$q = mysql_real_escape_string($_post['q']); $result = mysql_query("   select id, name, location,  map   accommodation name '%".$q."%' or location '%".$q."%' or map '%".$q."%' limit 0, 16")  or die(mysql_error()); 

Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -