Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL没有';无法连接到数据库_Php_Mysql - Fatal编程技术网

Php MySQL没有';无法连接到数据库

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

我正在LAMP下测试pc上的本地登录数据库页面。即使我可以从终端连接到mysql,我也不能从php脚本连接。我已经在网上查过了,但我所看到的每一个地方都只是以下代码的一种或另一种变体

<!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。我想你已经从商店拿回来了你的水晶球,我可以补充一点;-)