gpt4 book ai didi

PHP MYSQL 运行查询两次

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:00 25 4
gpt4 key购买 nike

当我运行以下脚本时。该行被插入两次(查询运行两次)。

require_once $_SERVER['DOCUMENT_ROOT'].'/functions/sanitize.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/main/config.php';

$response = textsanitize($_POST['r']);
$ticket = idssanitize($_POST['t']);

$stmt = $condb->prepare("INSERT INTO ticket_reponses (ticket_id,user_id,time,response) VALUES (:ticket_id,:user_id,:time,:response)");
$stmt->execute(
array(
"ticket_id" => $ticket,
"user_id" => $_SESSION['user_id'],
"time" => time(),
"response" => $response
)
);
if($stmt->execute()){
echo "SUCCESS";
}

当我删除 if($stmt->execute()){echo "SUCCESSS";} 时。它以正确的方式运行。插入一次的行。

为什么 if($stmt->execute()) 再次执行查询?我以为 if($stmt->execute()) 只返回 TRUE ||错误。我想确保查询已成功执行。

最佳答案

任何语言中准备好的语句的一个好的用途是您可以准备一次,然后根据需要多次执行。

因此,在您的情况下,您 execute() 语句两次,但您可以在一个循环中使用相同的准备语句插入一大堆数据。每次调用 execute() 时,您只需传递一组新值即可运行准备好的语句。在您的情况下,它是一个 INSERT,因此它运行了两次。

在您的情况下,您可能只需要...

$stmt = $condb->prepare("INSERT INTO ticket_reponses (ticket_id,user_id,time,response) VALUES (:ticket_id,:user_id,:time,:response)");

if($stmt->execute(array(
"ticket_id" => $ticket,
"user_id" => $_SESSION['user_id'],
"time" => time(),
"response" => $response))) {
echo "SUCCESS";
}

关于PHP MYSQL 运行查询两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53443824/

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