学生数据不会更新

时间:2014-09-09 05:51:14

标签: php mysql sql

首先,我想接受我的错误来加载包含许多列的表。我打算在解决这个问题后把它分开。我编写了代码Admin_Edit_Info.php,如下所示,但我无法更新数据。我已经好几天都在搞这些了。考虑到代码并不复杂,我真的认为这很容易,但我在更新表时遇到了问题。

    $query = "UPDATE student_information SET first_name='$first_name',last_name='$last_name',";    
$query .= "gender='$gender',date_of_birth='$date_of_birth',contact_no='$contact_no',grade='$grade',section='$section',";
$query .= "LRN='$LRN',email1='$email1',email2='$email2',address='$address',description='$description',"; 
$query .= "Fil1='$Fil1',Fil2='$Fil2',Fil3='$Fil3',Fil4='$Fil4',Eng1='$Eng1',Eng2='$Eng2',Eng3='$Eng3',Eng4='$Eng4',";
$query .= "Mat1='$Mat1',Mat2='$Mat2',Mat3='$Mat3',Mat4='$Mat4',Sci1='$Sci1',Sci2='$Sci2',Sci3='$Sci3',Sci4='$Sci4',";
$query .= "Ap1='$Ap1',Ap2='$Ap2',Ap3='$Ap3',Ap4='$Ap4',Tle1='$Tle1',Tle2='$Tle2',Tle3='$Tle3',Tle4='$Tle4',";
$query .= "Mus1='$Mus1',Mus2='$Mus2',Mus3='$Mus3',Mus4='$Mus4',Art1='$Art1',Art2='$Art2',Art3='$Art3',Art4='$Art4',";
$query .= "Pe1='$Pe1',Pe2='$Pe2',Pe3='$Pe3',Pe4='$Pe4',H1='$H1',H2='$H2',H3='$H3',H4='$H4',Esp1='$Esp1',Esp2='$Esp2',Esp3='$Esp3',Esp4='$Esp4'";  
$query .= " WHERE student_id='$student_id'";      
$result = mysqli_query($query, $link_id);
if(mysqli_error() != null){
    $recordUpdated = true;
}
else
{
    $recordUpdated = false;
}
header("location:Admin_Home.php?flag=$flag&student_id=$student_id&status=1");
?>

我可能你也需要配置,所以我在这里包括它。

Connection.php

<?php
$host = "localhost";
$dbusername = "root";
$dbpassword = "765632";
$dbname = "student";
$link_id = mysqli_connect($host,$dbusername,$dbpassword,$dbname) or die("Error " . mysqli_error($link_id)); 
?>

以防万一我的配置不匹配。

2 个答案:

答案 0 :(得分:1)

这一行:

$result = mysqli_query($query, $link_id);

$link_id作为您的数据库连接,连接变量必须先行。

$result = mysqli_query($link_id, $query);

打开error reporting并在打开<?php标记后立即将其添加到文件顶部 error_reporting(E_ALL); ini_set('display_errors', 1);
以及or die(mysqli_error($link_id))mysqli_query()会发出错误信号。

加号if(mysqli_error() != null){...}可能会更改为if($result){...}


您目前的代码向SQL injection开放。 Use prepared statementsPDO with prepared statements他们更安全

答案 1 :(得分:0)

从以下位置更改此行:

<br/>

if(mysqli_error() != null){
$recordUpdated = true;
}
<br/>

为:

if(mysqli_error() == null){
$recordUpdated = true;
}