I try replace my non secure query to PDO (prevent SQL injection) but i not trust my self what are im doing. I have db connection file:
<?php
$serverName ="db_name\SQLEXPRESS";
$usr="sa";
$pwd="SysAdmin1";
$db="DB";
$connectionInfo = array("UID" => $usr, "PWD" => $pwd, "Database" => $db);
$conn = sqlsrv_connect($serverName, $connectionInfo);
?>
and my file with query:
require_once 'db_file.php';
$place=$_POST['place'];
$name=$_POST['name'];
$sql_user = "SELECT * FROM users WHERE name='$name' and place= '$place' ";
$res = sqlsrv_query($conn,$sql_user);
$row = sqlsrv_fetch_array($res);
It work fine but not secure. I try replace to :
$sql_user = $conn -> prepare ("SELECT * FROM users WHERE name = :name and place = :place");
$sql_user -> execute (array(':name => '$name' , :place => '$place''));
$row = $sql_user -> fetch();
I have error Parse error: syntax error, unexpected T_VARIABLE, expecting ')'. I read many post about that but not shore im doing good way or no? Because sometimes variables in query is :name sometimes only ?