繁体   English   中英

使用PHP更新MySQL中的记录

[英]using php to update records in mysql

    <?php
$conn = mysqli_connect ("localhost", "B00657633", "Jpr3EjPw")
    or die ("could not connect: " . mysqli_error($conn));
    print "successful connection<br>";

    mysqli_select_db($conn, 'B00657633') or die ('db will not open');

    header('Location: sql5_2.php');

    $query = "UPDATE patient3 SET AGE=68 WHERE POST_CODE='bt667ed'";
    $result = mysqli_query($conn, $query) or die ("Query is invalid");
    $rownum = mysqli_num_rows($conn)
$col = mysqli_num_fields($conn);
echo "<table border='2'><tr><th>POST_CODE</th>";
for($i=0; $i<$rownum; $i++){
    $rows = mysqli_fetch_row($result);
    echo "<tr>";
    for($j=0; $j<$col; $j++){
        echo "<td>" . $rows[$j] . "</td>";
    }
    echo "</tr>";
}
echo "</table>";

$rownum = mysqli_affected_rows($conn);

echo $rownum . " Records have been updated.";

mysqli_close($conn);
?>

那是我网页的第一部分,第二部分如下:

<?php
$conn = mysqli_connect ("localhost", "B00657633", "Jpr3EjPw")
    or die ("could not connect: " . mysqli_error($conn));
    print "successful connection<br>";
        mysqli_select_db($conn, 'B00657633') or die ('db will not open');

    $query="SELECT * FROM patient3";
    $result = mysqli_query($conn, $query) or die ("Query is invalid");
    $num = mysqli_num_rows ($result);
    $col = mysqli_num_fields ($result);

    echo "<table border='2'><tr><th>PATNUM</th><th>PAT_FORENAME</th><th>PAT_SURNAME</th><th>STREET_ADDRESS</th><th>TOWN</th><th>POST_CODE</th><th>AGE</th>";
        for($j=0; $j<$num; $j++){
    $rows = mysqli_fetch_row($result);
    echo "<tr>";
    for($i=0; $i<$col; $i++){
        echo "<td>" . $rows[$i] . "</td>";
    }
    echo "</tr>";
}
echo "</table>";

echo " Records have been updated.";

mysqli_close($conn);
?>

不管我尝试什么,都不允许我更新sql中的任何信息。 真的不确定我哪里出错了,请帮助我。 第二部分显示我的桌子。 与服务器的连接很好,但是单击刷新后表中没有任何变化

编辑:现在,我实际上找到了测试/查看您的代码的时间,我注意到了一些事情。

这是更新文件。

<?php

    $conn = mysqli_connect ("localhost", "B00657633", "Jpr3EjPw")
        or die ("could not connect: " . mysqli_error($conn));
        print "successful connection<br>";

        mysqli_select_db($conn, 'B00657633') or die ('db will not open');



    $query = "UPDATE patient3 SET AGE=68 WHERE POST_CODE='bt667ed'";
    $result = mysqli_query($conn, $query) or die ("Query is invalid");

    $rownum = mysqli_affected_rows($conn);

    echo $rownum . " Records have been1 updated.";


    header('Location: sql5_2.php');

?>

这是sql5_2.php文件。

<?php
$conn = mysqli_connect ("localhost", "B00657633", "Jpr3EjPw")
    or die ("could not connect: " . mysqli_error($conn));
    print "successful connection<br>";
        mysqli_select_db($conn, 'B00657633') or die ('db will not open');

    $query="SELECT * FROM patient3";
    $result = mysqli_query($conn, $query) or die ("Query is invalid");
    $num = mysqli_num_rows ($result);
    $col = mysqli_num_fields ($result);

    echo "<table border='2'><tr><th>PATNUM</th><th>PAT_FORENAME</th><th>PAT_SURNAME</th><th>STREET_ADDRESS</th><th>TOWN</th><th>POST_CODE</th><th>AGE</th>";
        for($j=0; $j<$num; $j++){
    $rows = mysqli_fetch_row($result);
    echo "<tr>";
    for($i=0; $i<$col; $i++){
        echo "<td>" . $rows[$i] . "</td>";
    }
    echo "</tr>";
}
echo "</table>";

echo " Records have been updated.";

mysqli_close($conn);
?>

在您的代码中,您正在做一些事情。 首先,您尝试通过连接作为num_rows / num_fields方法的结果集。 这些期望返回值实际上包含数据,例如来自选择查询的返回值。 更新查询将返回true或false,以及它影响了多少行。 因此,即使在将其更新为采用结果变量之后,它仍试图将布尔值传递给方法。

您会注意到我将其更改为

mysqli_affected_rows()

它将检查执行查询所针对的mysqli_connect对象受影响的行数。 从那里,我们可以使用该变量输出受影响的行数。

另外,您尝试从更新查询中输出字段的值,该查询不返回字段。 在我的脑海中,您将必须使用相同的参数运行选择查询以获取将要更改的数据集,然后更新该数据集。 这样,您可以使用第一个选择查询中的数据集来输出要更改的行。

请记住,通过使用header('Location: ')您将重定向用户。 因此,第一个文件中的任何输出将被发送到sql5_2.php,因此不会被看到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM