Мне трудно показать результаты моего запроса с помощью предложения PDO Like.
У меня есть две базы данных: одна с сервера Wampp, а другая с MS SQL.
Для MS SQL я использовал следующее соединение:
$connection = new PDO('odbc:Driver={SQL Server};Server=Server\SQL2008;Database=dbname; Uid=hr;Pwd=hrpassword');
Я попытался select
всех полей, используя простой запрос PDO SELECT
, и он работал нормально. Просто чтобы дать представление о таблица, вот структура таблицы.
Table: CheckInOut
Columns: UserID, CheckTime, CheckType
Теперь я пытаюсь выбрать все данные, используя предложение LIKE
, чтобы получить все CheckTime
, которые начинаются с 2020 года.
Я пытался использовать этот запрос PDO:
$keyword = "2020-01-01%";
// Prepare the command
$sth = $connection->prepare("SELECT * FROM CheckInOut WHERE CheckTime LIKE :keyword");
// Put the percentage sing on the keyword
$keyword = $keyword;
// // Bind the parameter
$sth->bindParam(':keyword', $keyword, PDO::PARAM_STR);
$sth->execute();
while ($s=$sth->fetch()) {
echo $s['CheckTime']."<br/>";
}
Ничего не возвращается. Нет ошибок, нет выходных данных, поэтому я не могу найти, что не так. Но если бы я попытался использовать предложение equals
вместо LIKE
, оно работает нормально.
Код, который я использовал для предложения equals
:
$keyword = "108";
// Prepare the command
$sth = $connection->prepare("SELECT CheckTime as CheckTime FROM CheckInOut WHERE UserID = :keyword");
// Put the percentage sing on the keyword
$keyword = $keyword;
// Bind the parameter
$sth->bindParam(':keyword', $keyword, PDO::PARAM_STR);
$sth->execute();
while ($s=$sth->fetch()) {
echo $s['CheckTime']."<br/>";
}