Php MySQL没有';无法连接到数据库
我正在LAMP下测试pc上的本地登录数据库页面。即使我可以从终端连接到mysql,我也不能从php脚本连接。我已经在网上查过了,但我所看到的每一个地方都只是以下代码的一种或另一种变体Php MySQL没有';无法连接到数据库,php,mysql,Php,Mysql,我正在LAMP下测试pc上的本地登录数据库页面。即使我可以从终端连接到mysql,我也不能从php脚本连接。我已经在网上查过了,但我所看到的每一个地方都只是以下代码的一种或另一种变体 <!DOCTYPE HTML5> <html> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <link rel="stylesheet" type="text/cs
<!DOCTYPE HTML5>
<html>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="style.css">
<head>
</head>
<body>
<?php
$username = $_POST['username'];
$password = $_POST['password'];
/* connect to the db */
$connection = mysql_connect('localhost', 'username', 'password') or die ("Connect error");
mysql_select_db('myDatabase',$connection);
/* show tables */
$res = mysql_query("SHOW DATABASES", $connection) or die ("No Show Database");
while ($row = mysql_fetch_row($res))
{
echo $row[0], '<br/>';
}
?>
</body>
</html>
还有另一个页面,它接受用户名和密码,然后通过POST方法将其传递到此页面,但此页面立即显示连接错误。我用if else而不是或die尝试了它,但仍然无法连接。您必须将变量传递给连接函数,并显示有意义的错误描述:
$username = $_POST['username'];
$password = $_POST['password'];
/* connect to the db */
$connection = mysql_connect('localhost', $username, $password) or die(mysql_error());
如果可以,你应该这样做。已在PHP7中删除。了解使用PDO的语句,并考虑使用.D/P>
不过,你真的不想以那种方式连接到你的数据库,因为这会给你留下太多的机会。当您使用密码时,您确实应该使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
将变量传递给连接函数,并显示有意义的错误描述:
$username = $_POST['username'];
$password = $_POST['password'];
/* connect to the db */
$connection = mysql_connect('localhost', $username, $password) or die(mysql_error());
如果可以,你应该这样做。已在PHP7中删除。了解使用PDO的语句,并考虑使用.D/P>
不过,你真的不想以那种方式连接到你的数据库,因为这会给你留下太多的机会。当您使用密码时,您确实应该使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
或die(“连接错误”)代码>对您没有帮助<代码>或死亡(mysql_error())
will,与或死亡(“不显示数据库”)相同代码>如果可以,您应该。已在PHP7中删除。学习使用PDO的语句,并考虑使用OsOWHAT的目标是什么?使用POST数组/变量并充当db连接的参数?或die(“连接错误”)代码>对您没有帮助<代码>或死亡(mysql_error())
will,与或死亡(“不显示数据库”)相同代码>如果可以,您应该。已在PHP7中删除。学习使用PDO的语句,并考虑使用OsOWHAT的目标是什么?使用POST数组/变量并充当db连接的参数?未清除的变量传递到数据库函数@vp_arth。我正试图阻止它通过。如果你关于user/pass
-它的意思是接收不干净的变量(按原样)。但是,如果您想了解查询,没有任何连接的显示数据库
如何会有sql注入的风险?他不会将它们传递给显示数据库
OP正在将它们传递给mysql\u connect()
,不可能在那里进行SQL注入。我只是提醒OP。这不是“如果”的问题,而是OP何时将用户数据发送到他们的数据库的问题。嗯,好的)我只是想,可能是在mysql\u connect
中发现了新的漏洞,比如说很长的密码。。。也许你知道,我不知道:)@JayBlanchard我知道你一直都是对的Sam。我想你已经从商店拿回来了你的水晶球,我可以补充一点;-)未清除的变量传递到数据库函数@vp_arth。我正试图阻止它通过。如果你关于user/pass
-它的意思是接收不干净的变量(按原样)。但是,如果您想了解查询,没有任何连接的显示数据库
如何会有sql注入的风险?他不会将它们传递给显示数据库
OP正在将它们传递给mysql\u connect()
,不可能在那里进行SQL注入。我只是提醒OP。这不是“如果”的问题,而是OP何时将用户数据发送到他们的数据库的问题。嗯,好的)我只是想,可能是在mysql\u connect
中发现了新的漏洞,比如说很长的密码。。。也许你知道,我不知道:)@JayBlanchard我知道你一直都是对的Sam。我想你已经从商店拿回来了你的水晶球,我可以补充一点;-)