我有一个奇怪的问题。我有一个由4列组成的表。
表名是“请求”它是InnoDB。 ReqSTATIC是主键。
ReqSTATIC mediumint(8) UNSIGNED auto_increment
RidSTATIC mediumint(8) UNSIGNED No
UserName varchar(15) utf8_general_ci No
RequestArea varchar(256) utf8_general_ci No
当我在PHP文件中执行以下语句时,它生成3行而不是1行。什么可能导致这个????该程序不循环。
$InsertReqQuery="insert into request(RidSTATIC, UserName, Request) Values('$RidSTATIC', '$UserName','$Request')";
$InsertReqResult=mysql_query($InsertReqQuery);
if($InsertReqResult) {
echo "Insert is good";
}
在插入之前,表格为空。插入后phpMySQL显示以下内容:
ReqSTATIC RidSTATIC UserName RequestArea
1 5 jpizzolato test from phptest3
2 5 jpizzolato test from phptest3
3 5 jpizzolato test from phptest3
并回答每个人的问题
谢谢大家看看这个。看来这不是php和mysql的问题。在“ * *”之后的下面是整个代码。它在Wordpress页面中。除了你所看到的,页面中没有任何其他内容。关于这个的集市是有问题的Wordpress网站由GoDaddy主持。我在HostGator托管的Wordpress网站上复制了这个完全相同的测试和相同的表格。 HostGator测试很好。它只插入了1行。 GoDaddy测试推出了3行。对我而言,Wordpress的定义方式必须有所不同。我知道这不是一个Wordpress论坛,但我不认为这是一个Wordpress问题,但也许是。
我打电话给GoDaddy,但他们没有任何帮助。
是的,我只看到“插入是好的”和“在if之外”显示一次。
databaseconfig.php文件唯一要做的就是定义服务器,数据库,用户名和密码并执行mysql_connect语句,没有别的
<?php
require_once("scripts/databaseconfig.php");//data base details included here
$RidSTATIC="5";
$UserName="jpizzolato";
$RequestArea="new test from phptest3";
$InsertReqQuery="insert into request(RidSTATIC,UserName,RequestArea)Values('$RidSTATIC','$UserName','$RequestArea')";
$InsertReqResult=mysql_query($InsertReqQuery);
if($InsertReqResult)
{
?>
<p><font color="#FFFFFF">insert is good</font></p>
<?php
}
?>
<p> outside of if </p>
?>
答案 0 :(得分:2)
如果您通过URL直接调用此文件,请检查您的Web服务器访问日志文件,以确保只调用your_file.php一次(没有循环重定向等等)< / p>
如果此文件被称为包含在其他文件中的,则使用 require_once 而不是 require 或 include 嵌入它。
答案 1 :(得分:1)
触发器?
除此之外,更改您的代码以修改其中一个值(例如,使用常量“Hello World”)
$InsertReqQuery="insert into request(RidSTATIC, UserName, Request) Values '$RidSTATIC', '$UserName','Hello World!')";
检查所有结果行是否相同(也许您在代码的另一部分重用这些变量?
答案 2 :(得分:1)
只有在帖子中发布 $ wpdb-&gt;插入时才会发生同样的事情。将语句移到头部可以解决问题。我的猜测是内容在显示之前被处理了三次。这可能是由于插件形成代码?我知道直到最近我还没有这个问题。所以,它可能就像Jetpack一样。
答案 3 :(得分:0)
我刚刚本周发生了3次完全相同的插入情况。有了上面的线索,可能是浏览器反复执行脚本我确实发现了这种情况。浏览器非常快速地完成了这项工作,每次它都完全覆盖了之前执行的屏幕上的内容。唯一的例外是我在SQL表中记录的时间戳,有时会在1秒后记录。
我想要快速和脏的检查我在这里看到的php示例(与此问题无关),所以创建了一个带有该代码的php文件类型,其中包含一些我需要的柚子主要是一些echo输出到浏览器。然后我想,因为我要直接调用这个php文件,我应该在前面(和结束)放置一些插播内容来定义页面。好吧,我太快了,没有包括&#39; html&#39;标签。一旦我把这些问题解决了!