PHP:如何选择另一列

时间:2015-01-22 16:45:07

标签: php mysql

我的表中有3列用户名,密码和元素。元素的值是1.所以我创建了一个网页如果用户插入正确的用户名和密码,我希望我的PHP检查If if = 1然后做我想要的事情并将元素更改为0.但是如果它是0那么PHP做没有。我的问题是它显示白屏。

<?php
  require_once("function/func_connect.php");
  require_once("function/func_check.php");
  require_once("function/websend.php");
$objLogin = checkPassword($_POST['user_name'],$_POST['user_password'],$Cfg["table"]["user"]);
if($objLogin == false)
{
        include("state/login_failed.html");
        exit();
}
if($objLogin == true)
{
// I think the problem cause here How do I fix?
    mysql_query("SELECT element FROM authme WHERE username = $_POST['user_name']");
    echo "success";
}
    mysql_close();
?>

谢谢你,抱歉我的英语不好。

1 个答案:

答案 0 :(得分:2)

您的基本错误是您没有将字符串值包装在引号中。

mysql_query("SELECT element FROM authme WHERE username = $_POST['user_name']");

应该是

mysql_query("SELECT element FROM authme WHERE username = '$_POST['user_name']'");

但是,同样重要的是,你对SQL injections持开放态度。你需要尽快解决这个问题。

您还需要打开error reporting,这样您才能看到自己的错误,而不只是白屏。

仅供参考,you shouldn't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial