語法:
PDO->exec( sql )
說明:
針對沒有返回結果的操作,例如insert、update、dalete等等
實作:
$sql = "INSERT INTO user (Name, Email)VALUES('AAA','test@gmail.com')";
$count = $db->exec($sql);
echo "寫入".$count."筆資料";
$sql = "UPDATE user SET Email = 'test@yahoo.com' WHERE Name = 'AAA'";
$count = $db->exec($sql);
echo "更新".$count."筆資料";
也可以使用預處理的方式
預處理可以把要運行的SQL當作一種模板,可以帶來兩種好處
第一種:查詢只需處理一次就可以讓相同或不同的參數執行多次,通常可以使處理速度加快
第二種:安全性問題,可以確保不會有sql注入發生。
$sql = "INSERT INTO user (Name, Email)VALUES(':Name,:Email)";
$stmt = $db->prepare($sql);
$stmt->bind_param(':Name',$name);
$stmt->bind_param(':Email',$email);
$stmt->execute();
或是這樣也可以
$sql = "INSERT INTO user (Name, Email)VALUES(':Name,:Email)";
$stmt = $db->prepare($sql);
$query->execute(
array(':Name' => 'AAA',
':Email' => 'test@gmail.com'
));
也有可以帶入?的方式
$sql = "INSERT INTO user (Name, Email) VALUES (?, ?)";
$stmt = $db->prepare($sql);
$stmt->bind_param('AAA', 'test@gmail.com');
$stmt->execute();
或是
$sql = "INSERT INTO user (Name, Email) VALUES (?, ?)";
$stmt = $db->prepare($sql);
$stmt->execute(
array(':Name' => 'AAA',
':Email' => 'test@gmail.com'
));
沒有留言:
張貼留言