[英]SQLSTATE[42S22]: Column not found: 1054 Unknown column
我的項目有employee表,並且有(名稱,地址...,NIC),這里NIC具有模式9的數字和V(例如:917200424V),為此我添加了varchar(100)類型,
並且此NIC值將要登錄表,並且它具有(passowrd,tbl_employee_NIC)員工表NIC值正在傳遞給此tbl_employee_NIC 。
波紋管是登錄代碼:
<?php
require_once '../../config/config.php';
$tbl_employee_NIC = $_POST['tbl_employee_NIC'];
$passwordI = $_POST['password'];
$passwordI = md5($passwordI);
try {
$sql = "SELECT e.NIC, e.status, e.employeeBranch, e.employeeRole,
l.status,l.tbl_employee_NIC, l.password
FROM tbl_employee e, tbl_login l
WHERE l.tbl_employee_NIC=:tbl_employee_NIC
AND l.tbl_employee_NIC=e.NIC
AND e.status='Active'";
$stmt = $conn->prepare($sql);
$stmt->execute(array(':tbl_employee_NIC' => $tbl_employee_NIC));
$result = $stmt->fetchAll();
if (count($result)) {
$row = $result[0];
$dbPassword = $row[6];
if ($passwordI == $dbPassword) {
$_SESSION['username'] = $row[0];
$_SESSION['Branch'] = $row[2];
$_SESSION['Role'] = $row[3];
//update active in login
$stmt = $conn->prepare("UPDATE `tbl_login`
SET `status`='Active'
WHERE tbl_employee_NIC=".$_SESSION['username']);
$stmt->execute();
// ./update active in login
$_SESSION['SUCCESS'][] = "Welcome! ".$_SESSION['username'];
header("Location: " . '../login/home.php');
} else {
header("Location: " . $_SERVER['HTTP_REFERER']);
$_SESSION['ERROR'][] = "User Name or Password is wrong..!";
}
} else {
header("Location: " . $_SERVER['HTTP_REFERER']);
$_SESSION['ERROR'][] = "You have trun over the company .. SORRY!";
}
} catch (Exception $ex) {
header("Location: " . $_SERVER['HTTP_REFERER']);
$_SESSION['ERROR'][] = $ex->getMessage();
}
?>
但是當我要輸入時,它給出了一個錯誤,這是:
SQLSTATE [42S22]:找不到列:1054“ where子句”中的未知列“ 917200500V”
首先,我認為錯誤是由於代碼造成的,然后我只更新了員工表的NIC和登錄tavle的tbl_employee_NIC中沒有“ V”的一行。 但是它已經成功登錄。所以有人可以為此提供解決方案嗎?
我認為您的問題可能出在此聲明中。
由於tbl_employee_NIC
是字符串列,因此數據必須用引號引起來。 所以像這樣修改查詢
//update active in login
$stmt = $conn->prepare("UPDATE `tbl_login`
SET `status`='Active'
WHERE tbl_employee_NIC='{$_SESSION['username']}'");
或者,如果您願意
//update active in login
$stmt = $conn->prepare("UPDATE `tbl_login`
SET `status`='Active'
WHERE tbl_employee_NIC='".$_SESSION['username']."'");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.