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