2014-11-23 70 views
4

$ stmt究竟是什么,它的目的是什么?这是什么代表..

我下面是使用预处理语句的教程和说明书中抬起头来语句: http://php.net/manual/en/class.mysqli-stmt.php

,并认为它是一类“代表一份准备好的声明” - 我想这是一个准备好的sql语句,你插入一个变量。虽然我不明白这个id不同于将sql语句存储为字符串,然后在需要时操作字符串以添加变量。

+0

阅读PHP快速入门[这里](HTTP:// PHP .net/manual/en/mysqli.quickstart.prepared-statements.php) – 2014-11-23 08:45:09

+0

声明?只是一个猜测。 – Class 2014-11-23 08:46:34

回答

7

$stmt”显然(我认为)代表“声明”。作为一个变量名是任意的,你可以任意指定这个变量。 $stmt只是相当习惯。

准备好的语句就是数据库特征。数据库本身通过两个步骤来执行查询:首先是带有占位符的查询结构,其次是填充占位符的数据。 PHP端的语句对象表示这种分离,并在那里为您提供一个表示SQL服务器端准备语句的句柄。

这种分离的要点是,由于不正确地转义任意字符串值而导致SQL注入问题不存在;如果重复使用多次准备好的语句,它对性能也很有用。

+0

是。相当明显:第。有时候只是错过了。彻底。但是,有一个mysqli_stmt类?它有什么作用? – 2014-11-23 18:11:36

+0

或更确切地说我看到它“代表一个准备好的陈述”。但是这实际上意味着什么,因为我正在阅读准备好的语句的代码是用“$ stmt”代表的。 – 2014-11-23 18:12:50

+0

变量'$ stmt'包含一个'mysqli_stmt'类型的对象,它表示一个准备好的语句。 – deceze 2014-11-23 18:16:04

2

到底是什么$语句,什么是它的目的是什么?

它是一个变量,存储值

人们不使用它的声明 - 别人多一点想象力与变量命名