【问题标题】:updating data using get method使用 get 方法更新数据
【发布时间】:2019-07-16 10:27:33
【问题描述】:

好像我无法更新我的表格

我正在使用这样的href:

href="data/updatefunction.php?updtch=0&teachid=<?php echo $row['id']; ?>&classid=<?php echo $classid;?>"

数据放在这里:

updatefunction.php

if(isset($_GET['updtch'])){
    global $con;
    $teachid = $_GET['teachid'];
    $classid = $_GET['classid'];

    $q = $con->query("UPDATE class SET teacher=$teachid WHERE id=$classid");

我回应了我的teachidclassid,他们毫无问题地转移了

mysqli 错误没什么,我明白了:

致命错误:未捕获的错误:在 C:\xampp\htdocs\gradingsystem\admin\data\updatefunction.php:8 中调用 null 上的成员函数 query()
堆栈跟踪:#0 {main} 在第 8 行的 C:\xampp\htdocs\gradingsystem\admin\data\updatefunction.php 中抛出

【问题讨论】:

  • 请多注意您如何命名事物。这将使您的代码更容易阅读。例如:updtch 应该是 updateTeacherteachid 应该是 teacherId。一致性也很重要。在您的查询中,您有teacher=$teachid。我会在数据库中使用teacherId,毕竟它是一个id。另见:Ten tips to help you choose good names.
  • updatefunction.php 最后缺少},尽管我认为这不是你的问题。您收到错误消息吗?会发生什么?
  • 不在那里,我在查询中遇到错误
  • 查询给你什么错误?请参阅:mysqli_error()
  • 请去research那个错误信息,它一直被问到。有很多关于它的含义以及您需要做些什么来解决它的解释。

标签: php mysql sql error-handling sql-update


【解决方案1】:

在您的数据库中,教师的数据类型是字符串还是整数?

如果教师的数据类型是字符串,则必须将 $teachid 作为字符串传递

UPDATE class SET teacher = '$teachid' WHERE id = $classid

【讨论】:

  • 啊,这正是需要好名字的原因:$teachid 建议它是一个整数,但 teacher 建议它是一个字符串。
  • 这里的 $con 是什么?
  • $con = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);
  • 如果您在将用户输入放在查询中给出答案时,最好指出SQL-injection 的危险。
  • 这将起作用:$query = "UPDATE class SET teacher = '$teachid' WHERE id = $classid"; $result = mysqli_query($con, $query); if ($result) { // your code here } else { // your code here }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多