这篇文章只是为了澄清我的代码是否有效编写。我需要多个表才能在一个函数中插入值。由于这些值将通过用户提交,因此我使用了 Prepared statements 以防止任何 SQL 注入(在函数之前也有效地清理了 set 变量)
public function the_name($var1, $var2)
{
$mysqli->autocommit(FALSE);
$stmt_one = $mysqli->prepare("Insert into TABLE SET $var1 = ?, $var2 = ? ");
$stmt_two = $mysqli->prepare("Insert into TABLE SET $var1 = ?, $var2 = ? ");
$stmt_one->bind_param('is',$var1,$var2);
$stmt_two->bind_param('is',$var1,$var2);
$stmt_one->execute();
$stmt_two->execute();
$mysqli->commit();
$stmt_one->close();
$stmt_two->close();
}
该函数工作正常,但这是将多个值插入两个不同表的最佳方法吗?该函数似乎冗长......任何澄清如果这实际上是使用事务编写准备好的语句的正确方法。
更新:该功能用于在用户向其他用户提交帖子时创建通知。从而允许将帖子插入到帖子表中并将通知插入到通知表中。