Этот код работает одинаково, в зависимости от того, как вы его выполняете.
Но ...
В идеале вы хотели бы использовать позиционные параметры и подготовленные операторы ... ЭтоДолжен помочь вам, это частичное копирование / вставка из функции «сделай все», которую я написал, которую я использую везде.Настоятельно рекомендуем вам написать свой собственный или найти один (написать один раз, включить много, исправить один раз, когда это необходимо!).
$dbconn = new PDO('mysql:host=' . $hostname . ';port=' . $dbPort . ';dbname=' . $dbName . ';charset=utf8', $username, $password, array(PDO::MYSQL_ATTR_FOUND_ROWS => true));
$dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query="SELECT count(*) FROM myTable WHERE entry_type = ?");
$parameters=array("post");
$result = $dbconn->prepare($query);
$result->execute($arr);
if(!$result){
die("Query error:".$dbconn->errorInfo());
}
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$dataRetrieved[] = $row;
}
Редактировать -
Спрашивающий спрашивает в комментарии ниже - "Некоторые люди говорили мне, что не нужно ставить заполнители, если ценность не исходит от клиентской стороны. И вы сделали это. Почему? Кажется, что у каждого человека свое мнение ... "
Хорошо ... Верно.Если вы выполняете статический запрос, вам не нужно параметризировать или использовать подготовленные операторы и т. Д., Поскольку вы полностью контролируете то, что используется / запрашивается и т. Д.
Но вернемся к записиодин раз, включайте везде, исправляйте в одном месте, когда это необходимо "... если я везде использую свою функцию или класс, он должен иметь возможность обрабатывать запросы, использующие пользовательский ввод, а также запросы, которые являются статическими и безопасными для известных.Таким образом, все всегда параметризуется, даже если в этом нет особой необходимости.