Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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中的更新mysql不起作用-我怀疑存在变量问题_Php_Mysql_Edit - Fatal编程技术网

php中的更新mysql不起作用-我怀疑存在变量问题

php中的更新mysql不起作用-我怀疑存在变量问题,php,mysql,edit,Php,Mysql,Edit,我无法在php中更新mysql表。 我有3个文件:第一个文件列出了表格结果,其中一个“更新”按钮链接到表格中的电子邮件字段。第一个文件似乎能够将电子邮件字段传递给第二个文件。 第二个文件包括一个包含所有数据字段的表单和一个提交按钮。 第三个文件包括对数据库的更新查询。查询成功执行,但受影响的行数始终为0。我怀疑没有传递电子邮件地址,但也可能没有传递其他变量。有什么建议吗 第一个文件—我只包括php—从表中选择要更新的行: require 'project_db.php';

我无法在php中更新mysql表。 我有3个文件:第一个文件列出了表格结果,其中一个“更新”按钮链接到表格中的电子邮件字段。第一个文件似乎能够将电子邮件字段传递给第二个文件。 第二个文件包括一个包含所有数据字段的表单和一个提交按钮。 第三个文件包括对数据库的更新查询。查询成功执行,但受影响的行数始终为0。我怀疑没有传递电子邮件地址,但也可能没有传递其他变量。有什么建议吗

第一个文件—我只包括php—从表中选择要更新的行:
        require 'project_db.php';
        mysql_connect("$servername", "$username", "$password")or die("cannot connect");
        mysql_select_db("$database")or die("cannot select DB");

        //execute the SQL query and return records
        if (!$result = mysql_query("SELECT *  FROM $table"))
        echo 'mysql error: ' .mysql_error();

        //fetch tha data from the database
        while ($row = mysql_fetch_array($result)) {
    ?>
        <tr>
            <td><?php echo $row['Name']; ?></td>
            <td><?php echo $row['Email']; ?></td>
            <td><?php echo $row['Website']; ?></td>
            <td><?php echo $row['Gender']; ?></td>
            <td class="record-edit">
                <form action='edit_form.php?Email="<?php echo $row['Email']; ?>"' method="post">
                    <input type="hidden" name="Email" value="<?php echo $row['Email']; ?>">
                    <input type="submit" name="submit" value="Update">
                </form>
            </td>
            <td class="record-delete">
                <form action='project_selectdelete2b.php?Email="<?php echo $row['Email']; ?>"' method="post">
                    <input type="hidden" name="Email" value="<?php echo $row['Email']; ?>">
                    <input type="submit" name="submit" value="Delete">
                </form>
            </td>
        </tr>
   <?php }
    ?>

问题是您通过URL传递电子邮件,URL是GET方法。所以

$query = "UPDATE $table
   SET Name = '" .  $Name . "', ...
    ...
   WHERE Email = '". $_GET['Email'] ."';";
在第一个文件中,您使用的是
mysql
引擎

mysql_connect("$servername", "$username", "$password")or die("cannot connect");
mysql_select_db("$database")or die("cannot select DB");
$execute = mysqli_query ($connect,$query);
$rows = mysqli_affected_rows ($connect);
n在您正在使用的第三个文件中
mysqli
engine

mysql_connect("$servername", "$username", "$password")or die("cannot connect");
mysql_select_db("$database")or die("cannot select DB");
$execute = mysqli_query ($connect,$query);
$rows = mysqli_affected_rows ($connect);
两者必须相同。此外,我建议您使用面向对象的风格来提高代码的完整性

$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

另一个混合MySQL API的好例子。您的代码是否更新了表?在替换变量后打印查询字符串。如果答案不明显(95%的情况下问题是明显的),则编辑问题并将查询添加到问题中。@Neil,不,即使它说“成功”,也不会更新它它返回受影响的行=0您是否检查了表是否已更改,即使它返回0?@Gordon我打印了查询字符串,似乎正如我所怀疑的,电子邮件变量没有传递到第三个文件。。。但我不明白它在哪里丢失了:更新调查结果集名称='mm',网站='m',性别='m',FBCountry='m',FBCity='m',FBFeature='m',FBClean='m',FBCrowd='m',FBPeople='m',FBWildlife='mm',FBBackground='m',FBWaves='m',FBSeabed='m',Temp FBCommunications='m',FBComment='m'其中Email=';我在哪里需要GET语句?我尝试添加它,但没有效果,我不确定将它放在哪里…在您的查询中,您使用的是
where Email='”$\u POST['Email']
。我认为这应该是
$\u GET