簡體   English   中英

使用PDO插入值

[英]Inserting values using PDO

•因此,我試圖改變我的編碼習慣,並希望至少防止SQL注入。 但是,我仍然對創建查詢中的參數或語法感到困惑。 例如,

$q = //LINE 1 "insert into tblProject(projectName, projectLocation, projectType, projectStatus) //LINE 2 values(:projectName, :projectLocation, :projectType, :projectStatus);";

我相信第一行是指數據庫中的列名,但是在LINE 2 ,“:”是什么意思,它是做什么的呢? values()內的values()在哪里引用呢?聲明,例如$projectName = $_POST['projectName'];它引用$ projectName還是$_POST['projectName']內部的值?

•另一個問題是關於...->execute(array(...)); 讓我們以以下代碼為例:

$results = $query->execute(array(
":projectName"      => $projectName,
":projectLocation"  => $projectLocation,
":projectType"      => $projectType,
":projectStatus"    => $projectStatus
));

您能簡要但准確地解釋它的作用嗎? 而且, :projectName等等在哪里。.從哪里來的?

•它使用array()。 因此,如果我僅更新或插入單個值並使用execute(array()) ,是否會導致任何錯誤?

我相信我問了太多問題,有什么好的參考資料可以在這里找到大部分答案嗎?

提前致謝。

您的問題的兩個部分是相同的。 帶冒號的名稱是您指定綁定名稱的方式。 當您使用bindValue / bindParam或執行時,您說“ this:parameter實際上是此值”。 因此,它將接受您的查詢:

$q =  "insert into tblProject(projectName, projectLocation, projectType, projectStatus) 
   values(:projectName, :projectLocation, :projectType, :projectStatus);";

然后,當您執行此操作時:

$results = $query->execute(array(
":projectName"      => $projectName,
":projectLocation"  => $projectLocation,
":projectType"      => $projectType,
":projectStatus"    => $projectStatus
)); 

驅動程序將經過說:“好吧,因此需要對$ projectName的值進行轉義並代替查詢中的:projectName使用,而$ projectLocation應該為:projectLocation ...”,依此類推,依此類推

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM