'where子句'中的未知列'member_id'

时间:2012-11-21 10:28:56

标签: php where-clause

我在这个网站上搜索了一个解决方案但没有结果。 我遇到了以下问题,我的代码在'where子句'错误中给出了 Unknown Colum'member_id'。从来没有听说过..所以我现在有点困惑。

这是我的代码:

<?php
require("db.php");
$id = $_REQUEST['member_id'];

$result = mysql_query("SELECT * FROM members WHERE member_id = '$id'");
$test = mysql_fetch_array($result);
if (!$result)
    {
    die("Error: Data not found..");
    }
$admin=$test['admin'] ;
$firstname=$test['firstname'] ;
$lastname=$test['lastname'] ;
$mail= $test['mail'] ;
$login=$test['login'] ;
$passwd=$test['passwd'] ;

if(isset($_POST['save']))
{
$admin_save = $_POST['admin'];
$firstname_save = $_POST['firstname'];
$lastname_save = $_POST['lastname'];
$mail_save = $_POST['mail'];
$login_save = $_POST['login'];
$passwd_save = md5($_POST['password']);

mysql_query("UPDATE lijst SET admin ='$admin_save',firstname ='$firstname_save',lastname ='$lastname_save', mail ='$mail_save', login ='$login_save',
     passwd ='$passwd_save' WHERE member_id = '$id'")
            or die(mysql_error());
echo "Saved!";

header("Location: main.php");
}
mysql_close($conn);
?>

表格:

<form method="post">
<table>
    <tr>
        <td>Admin</td>
        <td><input type="text" name="admin" class="text w_20" value="<?php echo $admin ?>"/></td>
    </tr>
    <tr>
        <td>Voornaam</td>
        <td><input type="text" name="firstname" class="text w_20" value="<?php echo $firstname ?>"/></td>
    </tr>
    <tr>
        <td>Achternaam</td>
        <td><input type="text" name="lastname" class="text w_20" value="<?php echo $lastname ?>"/></td>
    </tr>
    <tr>
        <td>E-mail</td>
        <td><input type="text" name="mail" class="text w_20" value="<?php echo $mail ?>"/></td>
    </tr>
    <tr>
        <td>Gebruikersnaam</td>
        <td><input type="text" name="login" class="text w_20" value="<?php echo $login ?>"/></td>
    </tr>
    <tr>
        <td>Password</td>
        <td><input type="text" name="passwd" class="text w_20" value="<?php echo $passwd ?>"/></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="save" value="update" /></td>
    </tr>
</table>
</form>

1 个答案:

答案 0 :(得分:2)

错误是数据库表member_id中没有字段lijst。添加字段或从WHERE子句中删除条件。

根据您刚刚发布的SQL,您的表名为members而不是lijst。所以更改查询:

UPDATE members ......

编辑:您的MD5问题是因为您的html输入名为passwd,但您的目标是POST数组中的password

$passwd_save = md5($_POST['password']);

更改为:

$passwd_save = md5($_POST['passwd']);

最后,您的查询容易受到SQL注入攻击。作为快速修复,请通过mysql_real_escape_string()运行您的用户输入。甚至更好,切换到现代MySQL API,如PDO,并使用参数化查询。