【问题标题】:MySQL cannot being executedMySQL 无法执行
【发布时间】:2016-01-19 00:23:25
【问题描述】:

我是编程新手,我正在尝试使用 php/mysql 创建登录表单,但遇到了一些问题。我无法理解为什么我的 sql 代码无法执行,我使用的是 localhost。你们能帮帮我吗? 谢谢 这是我写的代码

<?php

$host = "localhost";
$user = "root";
$pass = "";
$db = "login";

mysql_connect($host, $user, $pass);
mysql_select_db($db);


if (isset($_POST['username'])){
    $username = $_POST['username'];
    $password = $_POST['password'];

    $sql = "SELECT * FROM users WHERE username'".$username."' AND password='".$password."' LIMIT 1";
    $res = mysql_query($sql);
    if (mysql_num_rows($res) == 1){
        echo "You have successfully logged in.";
        exit();
    }else{
        echo "Invalid password information.";
        exit();
    }
}
?>

【问题讨论】:

  • 您的WHERE 子句缺少=。您还应该切换到 mysqli 或 PDO。
  • 您在where username 上缺少一个等号 => where username =
  • 愚蠢的问题;在将问题交给其他人之前,花更多的时间看看你写的东西。

标签: php mysql sql xampp execute


【解决方案1】:

我想你忘了=

 $sql = "SELECT * FROM users WHERE username='".$username."' AND password='".$password."' LIMIT 1";

【讨论】:

  • 感谢您的帮助!
【解决方案2】:

简单的错字:

变化:

$sql = "SELECT * FROM users WHERE username'".$username."' AND password='".$password."' LIMIT 1";

收件人:

$sql = "SELECT * FROM users WHERE username = '".$username."' AND password='".$password."' LIMIT 1";

另外,如果你不需要它们,你不需要从数据库表中获取所有字段。

这会减慢页面加载速度。

您只能获取 id 字段。

您正在获取行数,因此,您的查询应该是:

SELECT id FROM users WHERE username ...

【讨论】:

  • 感谢您的帮助!
猜你喜欢
  • 2016-08-27
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
  • 2013-03-11
  • 2011-10-07
  • 2017-06-28
相关资源
最近更新 更多