tags:

views:

65

answers:

2

I have the following query, (which don't work).
How do I bid strings inside an existing string with % (I believe the % is not the problem, but really not sure).

$sql="SELECT * FROM T WHERE f LIKE '%:bindParamString%'";
+2  A: 

Try something like this:

$db = new PDO(...);

$sql = "SELECT * FROM T WHERE f=?";
$stmt = $db->prepare($sql);

$val = "%{$val}%";
$stmt->bindParam(1, $val, PDO::PARAM_STR);

For more info, I suggest to read the related doc page!

BitDrink
+2  A: 

You can include % symbols into your value:

 $param = '%'.$param.'%';
 $query = "SELECT * FROM T WHERE f LIKE ?";

Or use SQL to concatenate string in database:

 ## if you have mysql
 $query = "SELECT * FROM T WHERE f LIKE CONCAT('%', ?, '%')";

It also a good idea to use LIKE instead of = then you're searching by patterns.

Ivan Nevostruev