需要一些PHP PDO的解释。。。。!
在上面的示例中,为什么MYSQL选择WHERE需要一些PHP PDO的解释。。。。!,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,在上面的示例中,为什么MYSQL选择WHERE:actor_id后跟此:列和return$stmt->fetch(PDO::fetch_OBJ)中的相同内容为什么使用双栏?字符串:actor\u id不是变量。它是一个占位符,用于将实际变量$actor\u id值绑定到SQL字符串 $stmt字符串是带有占位符的查询 where子句的实际值在执行时使用execute()方法传递 你为什么要这么做?PDO允许准备好的语句,它的绑定有助于抽象出必须转义变量字符串的情况,就像将$actor_id连接到
:actor_id
后跟此:
列和return$stmt->fetch(PDO::fetch_OBJ)中的相同内容代码>为什么使用双栏?字符串:actor\u id不是变量。它是一个占位符,用于将实际变量$actor\u id值绑定到SQL字符串
$stmt字符串是带有占位符的查询
where子句的实际值在执行时使用execute()方法传递
你为什么要这么做?PDO允许准备好的语句,它的绑定有助于抽象出必须转义变量字符串的情况,就像将$actor_id连接到SQL字符串中一样
这有助于查询的可重用性和安全性。:colunm_name
用作占位符,就像?
一样
区别在于:column_name
您可以使用关联数组绑定参数。请通过教程学习PDO的基本原理 结尾的双冒号完全不同。它是一种单独的表示法,与查询中的单个冒号完全无关
双冒号表示要访问在类中定义的常量或函数。如果它是在一个对象中定义的,你会使用更熟悉的->
符号;在本例中,FETCH_OBJ
是PDO类本身内部的常量,而不是任何特定PDO对象中的常量。当您将该常量作为参数传递给fetch()
时,它会告诉函数以对象而不是数组的形式返回一行
双冒号称为双冒号。它还被称为“paamayim nekudotayim”,希伯来语中“双冒号”的意思,可能是计算机科学史上最糟糕的命名约定之一 上面示例中的第一个问题,为什么MYSQL选择WHERE:参与者\u id后跟:冒号
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 );
}
此语句使用一些类似于调用占位符的变量,通过使用:冒号,您可以将变量解析为sql
第二部分
return$stmt->fetch(PDO::fetch_OBJ)
为什么要使用双栏
这是因为您的定义针对PDO中的特定对象请停止在代码中使用global
变量。
$stmt->execute( array( ':actor_id' => $actor_id ) );