Php 什么是;x=?”的;在SQL查询的情况下是什么意思?

Php 什么是;x=?”的;在SQL查询的情况下是什么意思?,php,sql,Php,Sql,我需要帮助来理解这句话的意思: SELECT id, username, password FROM users WHERE email = ?LIMIT 1 我知道限制1是什么意思,但是限制1是什么意思呢 预处理语句或参数化语句用于高效地重复执行同一语句 prepared语句执行包括两个阶段:prepare和execute。在准备阶段,将语句模板发送到数据库服务器。服务器执行语法检查并初始化服务器内部资源以供以后使用 Prepare后面跟着execute。在执行期间,客户端绑定参数值并将其发

我需要帮助来理解这句话的意思:

SELECT id, username, password FROM users WHERE email = ?LIMIT 1
我知道限制1是什么意思,但是限制1是什么意思呢

预处理语句或参数化语句用于高效地重复执行同一语句

prepared语句执行包括两个阶段:prepare和execute。在准备阶段,将语句模板发送到数据库服务器。服务器执行语法检查并初始化服务器内部资源以供以后使用

Prepare后面跟着execute。在执行期间,客户端绑定参数值并将其发送到服务器。服务器根据语句模板和绑定值创建语句,以使用先前创建的内部资源执行该语句

准备好的语句可以重复执行。每次执行时,将计算绑定变量的当前值并将其发送到服务器。不会再次解析该语句。语句模板不会再次传输到服务器

每个准备好的语句都占用服务器资源。语句应在使用后立即显式关闭。如果没有显式执行,则当PHP释放语句句柄时,语句将被关闭

使用准备好的语句并不总是执行语句的最有效方式。仅执行一次的准备好的语句比未准备好的语句会导致更多的客户机-服务器往返

此示例通过替换位置的名称和值来执行插入查询?占位符

您的查询:

SELECT id, username, password FROM users WHERE email = ? LIMIT 1
符号表示占位符

我想,你使用pdo。何时执行查询

$email = // get some email
$stmt = $dbh->prepare("SELECT id, username, password FROM users WHERE email = ? LIMIT 1");
$stmt->bindParam(1, $email);
变量
$email
的值将置于
的插入位置,如:

SELECT id, username, password FROM users WHERE email = 'bob@gmail.com' LIMIT 1

您可以找到有关它的更多信息

表示mysqli或PDO准备语句中使用的占位符。。请参阅(假设查询文本中的
。电子邮件=?限制1
)后面也应该有一个空格)
SELECT id, username, password FROM users WHERE email = 'bob@gmail.com' LIMIT 1