我是否需要在每次打开时准备语句,或者只能在PDO PHP SQLite3中准备一次

时间:2011-06-17 08:14:21

标签: php sqlite pdo

我在网上发现了这个例子,用于在PHPite中插入PHP PDO

# no placeholders - ripe for SQL Injection!  
$STH = $DBH->("INSERT INTO folks (name, addr, city) values ($name, $addr, $city)");  

# unnamed placeholders  
$STH = $DBH->("INSERT INTO folks (name, addr, city) values (?, ?, ?); 

# named placeholders 
$STH = $DBH->("INSERT INTO folks (name, addr, city) value (:name, :addr, :city)"); 

我在每个命令后关闭连接(另一个应用程序只读取并且我的仅插入)。我是否需要在每次开放时准备声明或只准备一次?

1 个答案:

答案 0 :(得分:-1)

$userprep = $userdbc->prepare("
    INSERT INTO Users (userID, userPass, userName, userEmail)
    VALUES (:userID, :userPass, :userName, :userEmail)
");
$userprep->execute($newUser);

下面是我使用占位符插入新用户的代码示例..

$newUser是一个关联数组。

准备好一个语句后,你可以根据需要多次执行该语句,例如,如果我有一个嵌套的用户数组,我可以运行它:

for($i = 0; $i < count($newUser); $i++){
    $userprep->execute($newUser[$i]);
}

(嵌套数组当然必须使用关联键)

希望这有一些帮助。