我已经使用了其他线程提出的一些解决方案,但它只是不想工作。我的MYSQL版本是:5.5.38,这里是我使用的代码(目标是简单地连接到数据库)。该代码的推移,这就是为什么“{”不从,如果子句关闭,但应该连接到数据库的重要组成部分,如下表所示:简单地尝试连接数据库时,SQL语法错误(初学者)
$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():拒绝访问用户 '' @ 'localhost' 的(使用密码:NO)在/var/www/web1159/html/lehrer.php第15行
警告:mysql_real_escape_string():无法在/var/www/web1159/html/lehrer.php上建立到服务器的链接lin e 15
而这是我在尝试登录并连接到数据库时偶然发现的错误。我知道它说什么,但它对我没有多大意义 - 是“或”错误放置?我尝试了其他变化 - 仍然不起作用。为什么行1 ??:
您有在您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的正确语法手册“AS用户从lehrerzugang WHERE nutzer LIKE'和PW LIKE‘LFB’”在1号线
错误说明了一切:**拒绝访问用户“” @“localhost”的* *。您是否尝试从命令行连接到数据库?看起来你的数据库要么不可用,要么你的凭据不好。 Y我们的SQL也是错误的。据我所知MySQL不知道'AS'关键字。尝试以下'SELECT columnname user FROM xxx WHERE nutzer LIKE'$ nutzer'AND pw LIKE'$ password''其中columnname必须替换为您的实际列名称 – sengbatz
首先,不推荐使用'mysql' php驱动程序;你应该使用'mysqli'或'PDO_mysql'。其次,在建立数据库连接之后,不能调用mysql_real_escape_string()。 –
是否可以使用mysqli取决于您安装的是哪个版本的php,但它应该在5.3之后的任何php中默认可用。 –