这个查询对sql注入是否安全?
每个函数都必须写$ connection-> close();?
function insert_mytable() {
global $connection;
$text = 'bla bla';
$hashtag = 'bla bla';
// Prepare the statement
$stmt = $connection->prepare("INSERT INTO my_table (text, hashtag) VALUES (?, ?)");
$stmt->bind_param('ss', $text, $hashtag);
// Execute the statement
$stmt->execute();
// Close the statement
$stmt->close();
$connection->close();
}
答案 0 :(得分:2)
回答您的第一个问题:是*
*由于您使用的是PDO预处理语句,因此在大多数情况下,您的代码可以免受SQL注入攻击 。可能的情况是,出于您的目的,上面的代码是您对SQL注入所需的所有防御;但是,如果你想知道在什么情况下准备好的陈述是不够的,你应该看看this question的第一个答案,因为Joel Coehoorn对它的解释远胜于我。
至于你的第二个问题,正如ac.freelancer和Charlotte Dunois已经指出的那样,连接不需要关闭,特别是如果你打算再次使用这个连接的话。