Вопрос по символу ":" в SQL запросе -- что такое двоеточие
Primary tabs
Добрый день. Разбираясь с уроком, столкнулся с тем, что в коде cms http://my-first-cms.loc/ в файле
Article.php
в строке 149 есть запись:
$categoryClause = $categoryId ? "WHERE categoryId = :categoryId" : "";
Мне непонятен символ " : " в выражении:
"WHERE categoryId = :categoryId"
Что он означает?
- Log in to post comments
- 8169 reads
vedro-compota
Thu, 06/27/2019 - 12:54
Permalink
добавьте ссылку на урок, к
добавьте ссылку на урок, к которому относится вопрос.
_____________
матфак вгу и остальная классика =)
vedro-compota
Thu, 06/27/2019 - 23:37
Permalink
Добавьте пожалуйста цитату из
Добавьте пожалуйста цитату из кода, чтобы 10 строк до этого и 10 после, чтобы был понятен контекст.
_____________
матфак вгу и остальная классика =)
Laven
Fri, 06/28/2019 - 11:30
Permalink
Строка 5
public static function getList($numRows=1000000, $categoryId=null, $order="publicationDate DESC") { $conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD); $categoryClause = $categoryId ? "WHERE categoryId = :categoryId" : ""; $sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles $categoryClause ORDER BY $order LIMIT :numRows"; $st = $conn->prepare($sql); // echo "<pre>"; // print_r($st); // echo "</pre>"; // Здесь $st - текст предполагаемого SQL-запроса, причём переменные не отображаются $st->bindValue(":numRows", $numRows, PDO::PARAM_INT); if ($categoryId) $st->bindValue( ":categoryId", $categoryId, PDO::PARAM_INT); $st->execute(); // выполняем запрос к базе данных // echo "<pre>"; // print_r($st); // echo "</pre>"; // Здесь $st - текст предполагаемого SQL-запроса, причём переменные не отображаются $list = array(); while ($row = $st->fetch()) { $article = new Article($row); $list[] = $article; }vedro-compota
Fri, 06/28/2019 - 18:34
Permalink
по сути
собственно, ответ на вопрос вот в этой строке (где подставляется значение):
:categoryId -- это плейсхолдер, для настоящего значения, которое и подставляется.
_____________
матфак вгу и остальная классика =)
sid
Fri, 06/28/2019 - 18:47
Permalink
Дополнение
Возможно это тоже поможет, ссылка на документацию по подготовленным запросам.