PHP 运行一次但向 MySQL 数据库插入两次
本地运行提供的代码时,可能会遇到数据库插入两次的异常记录而不是脚本仅执行一次后的记录。这个问题在 Opera 或 Chrome 等浏览器中尤其明显。
问题的出现是由于一种常见的浏览器行为:请求图标。当访问网站时,浏览器将发送对脚本的请求和对网站图标的第二个请求。在您的例子中,由于代码处理每个请求,它会尝试两次插入数据库记录,从而导致重复条目。
要解决此问题,您应该修改代码以确保仅执行插入查询用于特定请求,例如初始页面加载。您可以通过利用 PHP $_SERVER['REQUEST_URI'] 变量来实现此目的,该变量提供当前页面所请求的 URI。通过将此变量与已知值(例如主页 URI)进行比较,您可以将插入查询的执行限制为特定请求。
例如,您可以按如下方式修改代码:
$requestURI = $_SERVER['REQUEST_URI']; if ($requestURI == '/index.php') { $sql = "INSERT INTO test_table (value, insert_time) VALUES ('testing', '" . time() . "')"; $result = mysql_query($sql); }
此修改确保插入查询仅在访问主页时执行,防止浏览器请求 favicon 时重复数据库插入。
以上是为什么我的 PHP 脚本将数据插入 MySQL 两次,尽管我只运行了一次?的详细内容。更多信息请关注PHP中文网其他相关文章!