Необходимо некоторое объяснение PHP PDO …!

function get_actor_info( $actor_id ) { global $pdo; $stmt = $pdo->prepare(' SELECT film_info, first_name, last_name FROM actor_info WHERE actor_id = :actor_id LIMIT 1'); $stmt->execute( array( ':actor_id' => $actor_id ) ); return $stmt->fetch( PDO::FETCH_OBJ ); } 

в примере выше. Почему MYSQL выбирает WHERE … :actor_id за которым следуют : столбец и то же самое return $stmt->fetch( PDO::FETCH_OBJ ); Зачем использовать двойной столбец?

Строка: actor_id не является переменной. Это заполнитель для привязки фактического значения переменной $ actor_id к строке SQL.

Строка $ stmt – это запрос с заполнителем.

Фактическое значение предложения where передается с использованием метода execute () при выполнении.

Зачем вам это делать? PDO позволяет создавать подготовленные операторы, и его привязка помогает абстрагироваться от необходимости избегать строки переменной, как если бы вы просто конкатенировали $ actor_id в своей строке SQL.

Это помогает в повторном использовании и безопасности запросов.

:colunm_name используется как заполнитель, как ? ,

Разница в том, что :column_name вы можете использовать ассоциативный массив для привязки параметров.

Двойная двоеточия в конце совершенно другая. Это отдельный вид нотации, который полностью не связан с одним двоеточием в запросе.

Двойной двоеточие означает, что вы хотите получить доступ к константе или функции, определенной в классе. Если бы он был определен в объекте, вы использовали бы более знакомое -> обозначение; в этом случае FETCH_OBJ является константой внутри самого класса PDO, а не в каком-либо конкретном объекте PDO. Когда вы передаете эту константу в качестве аргумента для fetch() , она сообщает функции возвращать строку в виде объекта, а не массива.

Двойной двоеточие называется оператором разрешения области . Это также имеет название «paamayim nekudotayim», который является ивритом для «двойной толстой кишки» и, вероятно, одним из наихудших вариантов обозначения имен в истории информатики.

первый вопрос в примере выше. Почему MYSQL выбирает WHERE … : actor _id, за которым следует: двоеточие

 $stmt->execute( array( ':actor_id' => $actor_id ) ); 

этот оператор использует некоторые как переменные, вызывающие заполнитель, используя: двоеточие, вы можете проанализировать переменную в sql.

вторая часть..

return $stmt->fetch( PDO::FETCH_OBJ ) Зачем использовать двойной столбец?

это как ваше определение, нацеленное на конкретный объект в PDO .

Прочтите этот учебник, чтобы изучить основы PDO.