【发布时间】:2015-02-18 08:38:23
【问题描述】:
我的PHP 页面中有一个INSERT 查询,它按预期执行一次,并且工作正常,正是我想要的。
if(!$con->query("INSERT INTO contracts (CID, DATE, NUMBER, TITLE, DESCRIPTION) VALUES ('$cid', '" . $con->real_escape_string($date) . "', '" . $con->real_escape_string($number[$counter]) . "', '" . $con->real_escape_string($title[$counter]) . "', '" . $con->real_escape_string($description[$counter]) . "')"))
{
printf("Error message: %s\n", $con->error);
}
现在,我在同一个 PHP 文件中添加以下 CSS 以使我输出的表格更易于阅读:
<style>
tr:nth-child(even) {
background-color: e5e4e2;
}
</style>
这使得其他每一行都是灰色的,太棒了......但是等等!现在我的SQL INSERT 发生了两次。我不知道这些是如何连接的,当我删除 CSS 时,INSERT 会按照我的需要执行一次。
这里有一些我不理解的诡计吗? CSS 会如何影响我的 SQL 查询?
我正在使用 XAMPP,PHP 版本 5.5.15 和 phpMyAdmin 用于数据库表。
编辑:我检查了数据库,它插入了两次。
查询设置为一个按钮,我使用if (isset($_GET['insertIt'])) {// INSERT QUERY 这样当用户单击此按钮时:<a href = 'testing.php?insertIt=true'><button style="height: 30px; margin-left: 10px; margin-right: 10px">2. Insert New Contracts To 'contracts' Table</button></a>
发送查询。如果没有 CSS,它可以正常工作,但它会运行两次
编辑 2: 好的,这是我单击按钮时开发人员工具的两个屏幕截图。我发现这不是CSS 的遗漏,而是<style> ... </style> 标签的遗漏;当我把它们排除在外时,我得到这个:
当它们在我的PHP 文件中时,我得到这个:
我可以接受这个并尝试通过分离文件或离开来解决它标签完全消失,但我仍然很想知道为什么会发生。我不是专家,但我可以看到当没有 <style> 标签和条目时,有一个额外的调用 insertIt插入两次。
为了记录,我希望能够
- 点击按钮
- 插入条目一次
- 并刷新页面,因为页面也会显示插入的结果。
【问题讨论】:
-
什么事件触发了 INSERT ?
-
发布更多代码,因为我怀疑问题出在 CSS 上
-
“CSS 导致 SQL INSERT 执行”绝对不是,事件有点可能
-
尝试解耦css和php文件。
-
我猜,但你需要“一些东西”来检查样式并触发某种服务器操作。所以我会说“某事”,即 javascript 可以做到,但不能直接使用 css。
标签: php html css phpmyadmin