Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么这个SQL要处理两次?_Php_Mysql - Fatal编程技术网

Php 为什么这个SQL要处理两次?

Php 为什么这个SQL要处理两次?,php,mysql,Php,Mysql,基本上,出于某种原因,我的插入查询SQL要处理两次,我不知道为什么 这是我的表格: <form class="form-horizontal" method="POST" action=""> <input id="email" name="email" class="text-style" type="email"> <input id="password" name="password" class="text-style" type="pass

基本上,出于某种原因,我的插入查询SQL要处理两次,我不知道为什么

这是我的表格:

<form class="form-horizontal" method="POST" action="">
    <input id="email" name="email" class="text-style" type="email">
    <input id="password" name="password" class="text-style" type="password">
    <input id="secret" name="secret" class="text-style" type="text">
    <select class="text-style" id="console" name="console">
        <option value="XBOX">Xbox 360</option>
        <option value="PS3">PS3</option>
    </select>
    <select class="text-style" id="status" name="status">
        <option value="0">Disabled</option>
        <option value="1">Enabled</option>
    </select>
    <button class="btn btn-success pull-right" name="add_account">Add Account</button>
</form>
然后是
$DB->insert
函数

public function insert($table=null,$array_of_values=array()) {
    if ($table===null || empty($array_of_values) || !is_array($array_of_values)) return false;
    $fields=array(); $values=array();
    foreach ($array_of_values as $id => $value) {
        $fields[]=$id;
        if (is_array($value) && !empty($value[0])) $values[]=$value[0];
        else $values[]="'".mysql_real_escape_string($value,$this->connection)."'";
    }
    $s = "INSERT INTO $table (".implode(',',$fields).') VALUES ('.implode(',',$values).')';
    if ($this->runSQL($s)) return true;
    return false;
}
下面是
runSQL
函数:

public function runSQL($sqlQuery,$possibleError = 0) {
    if($sqlQuery=="") {return false;}
    mysql_query($sqlQuery);
    if(mysql_error()){  
        return false;
    }
    return true;
}

您的代码看起来不错,而且插入似乎不可能发生两次。您可以安装Firefox的Firebug,然后右键单击表单->“Inspect元素”。转到“网络”,看看表单发布了什么,以及它是否只发布了一次? 可能有Javascript试图再次提交表单


如果一切看起来都很好,那么应该查看DB Insert函数:

您的代码看起来很好,而且插入似乎不会发生两次。您可以安装Firefox的Firebug,然后右键单击表单->“Inspect元素”。转到“网络”,看看表单发布了什么,以及它是否只发布了一次? 可能有Javascript试图再次提交表单


如果一切正常,则应查看DB Insert函数:

可能您的浏览器发送了两个请求,使用TamperData插件嗅探到Firefox或类似的内容,您也可以检查服务器上的访问日志。您单击“代码> AddioActudio一次,但它添加相同的帐户两次?只是一个提示,不要考虑使用<代码> MySqL**/CODE >,并转换为将来PHP版本的更受支持的选项。例如
mysqli.*
pdo
add
echo$sqlQuery
运行sql
,查看它是否打印多个sql语句或使用错误日志(“写入数据库”);可能你的浏览器会发送两个请求,用TamperData插件嗅探到Firefox或类似的东西,您也可以检查服务器上的访问日志。您单击“代码> AddioActudio一次,但它添加相同的帐户两次?只是一个提示,不要考虑使用<代码> MySqL**/CODE >,并转换为将来PHP版本的更受支持的选项。例如
mysqli.*
pdo
add
echo$sqlQuery
运行sql
,查看它是否打印多个sql语句或使用错误日志(“写入数据库”);
public function runSQL($sqlQuery,$possibleError = 0) {
    if($sqlQuery=="") {return false;}
    mysql_query($sqlQuery);
    if(mysql_error()){  
        return false;
    }
    return true;
}