I am new to PHP development and I current have a working search query by using MySQLI. I would like to convert my statement to switch from mySQLI to PDO but I am confused how to inject a variable into the PDO query as I used to do :
$search = mysqli_real_escape_string($connect, $_POST["query"]);
where connect
was :
$connect = mysqli_connect("localhost", "root", "", "app")
I am currently getting this warning: mysqli_num_rows() expects parameter 1 to be mysqli_result
, which means that there is something wrong with my query:
try{
$conn = new PDO("mysql:host=$servername;dbname=app", $username, $password,[
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
} catch (PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
if(isset($_GET["query"])){
echo "hello world";
$search = $_GET["query"];
$query = $conn->prepare("SELECT * FROM cities WHERE city LIKE search= ? LIMIT 10");
$query->execute([':search' => $search]);
$result = $query->fetchAll(\PDO::FETCH_ASSOC);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
$queryResult = '<li> .$row["population"] </li>';
}
}
echo $queryResult;
}