gpt4 book ai didi

php - 更好的方法吗?

转载 作者:行者123 更新时间:2023-11-30 23:40:07 25 4
gpt4 key购买 nike

所以这是我当前的代码:

function addPage($uniquename, $ordernum, $title, $author, $content, $privilege, $description=NULL, $keywords=NULL){
if (!$description) $description = NULL;
if (!$keywords) $keywords = NULL;
//UPDATE `table` SET `ordernum` = `ordernum` + 1 WHERE `ordernum` >= 2
$query = "UPDATE ".$this->prefix."page SET ordernum = ordernum+1 WHERE ordernum >= ?";
if ($stmt = $this->db->prepare($query)){
$stmt->bind_param("i", $ordernum);
$stmt->execute();
if (!arCheck($stmt)) return false;
} else {
$this->stmtError("addPage", $stmt->error);
}

$query = "INSERT INTO ".$this->prefix."page VALUES (LCASE(?), ?, ?, ?, ?, ?, ?, ?)";
if ($stmt = $this->db->prepare($query)){
$stmt->bind_param("sisisssi", $uniquename, $ordernum, $title, $author, $content, $description, $keywords, $privilege);
$stmt->execute();
return arCheck($stmt);
} else {
$this->stmtError("addPage", $stmt->error);
}
}

假设要向数据表中添加一个新页面。 MySQL 由 Phil Hunt 提供,来自 Store the order of something in MySQL

我知道您可以使用多查询来完成同样的事情,但是有人告诉我准备好的语句在性能和安全性方面更好。还有另一种方法吗?就像准备好的多查询?

还有,做交易怎么样?我不完全确定那是什么,我假设如果 INSERT 语句失败,它也会撤消 UPDATE 语句吗?

注意:arCheck 函数将关闭语句。

最佳答案

至少在大多数情况下,准备好的语句对于重复查询确实更快。它们也更安全,因为它们会自动转义输入值,防止 SQL 注入(inject)攻击。如果你想在 PHP 中使用它们,你需要 MySQLi extension .

您似乎对交易有正确的看法。 MySQLi 有 commitrollback 方法,否则你可以使用 mysql_query("COMMIT")mysql_query("ROLLBACK")

关于php - 更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com