[英]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.