只需尝试连接数据库(初学者)时SQL语法出错

时间:2015-11-16 07:04:18

标签: php mysql

我已经在其他线程中使用了一些解决方案,但它只是不想工作。我的MYSQL版本是:5.5.38,这是我使用的代码(目标是简单地连接到数据库)。代码继续,这就是为什么“{”没有从if子句关闭,但应该连接到数据库的重要部分列在下面:

$user = mysql_real_escape_string($_POST['user']);
$password = ($_POST['password']);

if ($_POST['user'] <> "" AND $_POST['password'] <> "")
{
mysql_connect('localhost', 'xxx', 'xxx');
mysql_select_db('xxx');

$sql = "SELECT * AS user FROM xxx WHERE nutzer LIKE '$nutzer' AND pw LIKE '$password'" ;

$result = mysql_query($sql);
if (false === $result) {
die (mysql_error());
}

$datensatz = mysql_fetch_array($result, MYSQL_ASSOC);

当我刚刚打开网站时,这些错误就出现了:

  

警告:mysql_real_escape_string():第15行的/var/www/web1159/html/lehrer.php中的用户''@ localhost'(使用密码:NO)拒绝访问

     

警告:mysql_real_escape_string():无法在第15行的/var/www/web1159/html/lehrer.php中建立指向服务器的链接

这是我尝试登录并连接到数据库时偶然发现的错误。我知道它说的是什么,但它对我来说没有多大意义 - “或者'错误地放置了吗?我尝试了其他变化 - 仍然不起作用。为什么第1行?:

  

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在“AS user FROM lehrerzugang WHERE nutzer LIKE”附近使用正确的语法,并在第1行点击“lfb”

1 个答案:

答案 0 :(得分:1)

在调用mysql_real_escape_string之前设置数据库连接。

除了localhost的默认用户名和passowrd是'root'和空字符串''之外,所以除非您明确更改了这些凭据,否则您需要以root用户身份提供具有空密码的访问权限。

mysql_connect('localhost', 'root', '');
mysql_select_db('yourDatabase');

如果您已设置自己的数据库用户访问权限,请确保提供正确的凭据。

mysql函数现已在PHP中弃用,并且有一个改进的MYSQL库来支持数据库连接和muanipulation mysqli,所以请使用它。

您无法为所有列选择*添加别名,因此SELECT * AS无效,别名可以指定给特定列选择SELECT dateOfBirth AS DOB, dateCreated AS DC FROM yourTable