PHP MySQL 列无效

标签 php mysql mysql-error-1054

在过去的四天里,我一直在努力让它发挥作用。这只是一个简单的登录页面,其中未存储任何敏感信息,但我在使用 PHP 时遇到了问题。

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $uname = $_POST["login"];
    $pword = $_POST["pass"];
    $uname = htmlspecialchars($uname);
    $pword = htmlspecialchars($pword);
    $user_name = "bradf294_access";
    $password = "********";
    $database = "bradf294_clients";
    $server = "localhost";
    $db_handle = mysql_connect($server, $user_name, $password);
    $db_found = mysql_select_db($database, $db_handle);
    print(mysql_errno());
    print($db_found);
    if(isset($db_found)){
        print($db_found."Success");
        $SQL = "SELECT * FROM basicinfo WHERE ref = $uname AND pass = $pword";
        $result = mysql_query($SQL);
        print("Query made");
        print(mysql_errno());
        if ($result) {
            print("result:".$result);
        }
        else {
            print("Incorrect Login Details");
        }
        if ($result > 0) {
            print("found user");
            $errorMessage= "logged on ";
            session_start();
            $_SESSION['login'] = "1";
            header ("Location: progressuser.php");
        }
        else {
            print("Invalid Logon");
        }
    } else {
        print("Database not found. The Webmaster has been notified. Please try again   later");
        $subject = "Automated login error" ;
        $message = "An error occured whilst trying to connect to the MySQL database, to login to the progress checker" ;
        mail("a-bradfield@bradfieldandbentley.co.uk", $subject, $message);
    }

从我一直用来调试的页面上的输出来看,似乎是行似乎不起作用,它们给出了 1054 错误 - “Unknown column '%s' in '% ‘”

$SQL = "SELECT * FROM basicinfo WHERE ref = $uname AND pass = $pword";
$result = mysql_query($SQL)

即使我将 $SQL 字符串复制并粘贴到 phpMyAdmin 中并且它运行良好?

我做错了什么很明显吗?转到 http://www.bradfieldandbentley.co.uk/test/progress.php并输入详细信息引用:TST001 并传递:dnatbtr121 以自行查看输出。

最佳答案

你需要引用变量:

$SQL = "SELECT * FROM basicinfo WHERE ref = '$uname' AND pass = '$pword'";

然而

mysql_* 函数已被弃用 - 您应该考虑改用 PDOmysqli_*。这些都使您可以更轻松地编写安全代码,并为您解决引用问题。

关于PHP MySQL 列无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12482829/

相关文章:

php - Android 使用 ksoap 调用 PHP SOAP webservice 失败 : 'procedure ' CheckLogin' not found

php - 使用 Hostgator 连接到 MySql 数据库

MySQL:忽略错误(#1054)并且仅设置现有列

mysql - sql select语句给出列错误

php - 修改 Symfony Composer 供应商并使用它们直到他们的 PR 被 merge

javascript - ajax 和 PDO 变量作为 WHERE 的条件

php - 在 php 中编辑行

sql - SQL `order` .id 未知列中的变量范围

mysql - 在mysql中创建一个简单的存储过程

MySQL 错误代码 : 1054 Unknown column 'field' in 'field list'