一个MySQL插件生成3行而不是1行

时间:2011-07-16 13:13:26

标签: php mysql

我有一个奇怪的问题。我有一个由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>
?>

4 个答案:

答案 0 :(得分:2)

  1. 如果您通过URL直接调用此文件,请检查您的Web服务器访问日志文件,以确保只调用your_file.php一次(没有循环重定向等等)< / p>

  2. 如果此文件被称为包含在其他文件中的,则使用 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;标签。一旦我把这些问题解决了!