Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未知列';成员id';在';其中第'条;_Php_Where Clause - Fatal编程技术网

Php 未知列';成员id';在';其中第'条;

Php 未知列';成员id';在';其中第'条;,php,where-clause,Php,Where Clause,我在这个网站上搜索了一个解决方案,但没有结果。 我陷入了以下问题,我的代码在where子句中给出了未知列的member\u id错误。以前从没听说过。。所以我现在有点困惑 这是我的代码: <?php require("db.php"); $id = $_REQUEST['member_id']; $result = mysql_query("SELECT * FROM members WHERE member_id = '$id'"); $test = mysql_fetch_array

我在这个网站上搜索了一个解决方案,但没有结果。 我陷入了以下问题,我的代码在where子句中给出了未知列的member\u 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);
?>

错误是数据库表
lijst
中没有字段
member\u id
。在
WHERE
子句中添加字段或删除条件

根据您刚才发布的SQL,您的表被称为
members
而不是
lijst
。因此,请更改查询:

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

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

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

最后,您的查询容易受到SQL注入的攻击。作为一个快速解决方案,通过
mysql\u real\u escape\u string()
运行用户输入。或者更好,切换到现代的MySQL API,如PDO,并使用参数化查询。

那么您的成员表的结构是什么呢?这是我的成员表:创建表
members
member\u id
int(11)unsigned NOT NULL auto\u increment,
admin
varchar(15)非空默认值“0”,
firstname
varchar(100)默认值为空,
lastname
varchar(100)默认值为空,
mail
varchar(150)非空,
login
varchar(100)非空默认值“”,
passwd
varchar(32)非空默认值“”,主键(
成员id
)引擎=MyISAM默认字符集=拉丁1自动增量=13;这是
成员
表@DavePiersma。错误是由
lijst
表上的
UPDATE
语句引起的。@DavePiersma请参阅我的编辑。。。如果您的表是“代码>成员< /代码>,请不要在查询中使用<代码> LIJST < /CUT>,请使用<代码>成员<代码>。@ DavePiersma,如果这解决了您的问题,请考虑通过点击左边的TICK来接受答案。@ DaveBursMa见我的编辑,您的输入名<代码> PASWD与PHP中的目标不匹配。
$passwd_save = md5($_POST['passwd']);