2014-11-23 69 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

到底是什麼$語句,什麼是它的目的是什麼?

它是一個變量,存儲值

人們不使用它的聲明 - 別人多一點想象力與變量命名