正在与本地主机服务器建立PHP连接?

正在与本地主机服务器建立PHP连接?,php,html,mysql,database,Php,Html,Mysql,Database,我在将PHP脚本连接到本地主机服务器上的数据库时遇到问题。 我已经发布了下面的代码,它是为了在网站上启用用户注册。 当我运行代码时,输入框会按应有的方式显示,但当我尝试完成注册时,数据库不会更新。 作为一名PHP新手,我对它了解不够,无法发现我可能会犯的任何错误,或者这些错误的含义。 在这个问题上的任何帮助都将不胜感激,因为有很多关于PHP在线的信息,但我更希望知道是什么导致了这个错误,以便将来防止它 以下是浏览器控制台中出现的错误: 加载资源失败:服务器响应状态为404(未找到) Refere

我在将PHP脚本连接到本地主机服务器上的数据库时遇到问题。 我已经发布了下面的代码,它是为了在网站上启用用户注册。 当我运行代码时,输入框会按应有的方式显示,但当我尝试完成注册时,数据库不会更新。 作为一名PHP新手,我对它了解不够,无法发现我可能会犯的任何错误,或者这些错误的含义。 在这个问题上的任何帮助都将不胜感激,因为有很多关于PHP在线的信息,但我更希望知道是什么导致了这个错误,以便将来防止它

以下是浏览器控制台中出现的错误:

加载资源失败:服务器响应状态为404(未找到)

ReferenceError:找不到变量:$

还有来自MAMP的UNIX套接字代码(我不知道这在哪里合适):

以及PHP代码:
    //connect to database
    $db = mysql_connect("localhost", "root", "", "authentication");

    if (isset($_POST['register_btn'])) {
        session_start();
        $username =mysql_real_escape_string($_post['username']);
        $email =mysql_real_escape_string($_post['email']);
        $password =mysql_real_escape_string($_post['password']);
        $password2 =mysql_real_escape_string($_post['password2']);


        if ($password == $password2) {
            //create user
            $password = md5($password); //hash password before storing for security 
            $sql = "INSERT INTO users(username, email, password) VALUES('$username', '$email', '$password')";
            mysql_query($db, $sql);
            $_SESSION['message'] = "Find a Table";
            $_SESSION['username'] = $username;
            header("location: HomePage.html"); //redirect to homepage 
        }else{
            $_SESSION['message'] = "Your passwords must match to proceed";

        }



    }


?>

从哪里开始?这么多问题

首先,您使用的是旧的mysql函数,这些函数在PHP的最新版本中被完全删除。改为使用函数。mysql\u connect和mysql\u query等旧函数。您需要在这段代码中查找所有出现的mysql\uuz,并考虑用新的对应命令替换每个命令

您定义此代码以连接:

$user = 'root';
$password = 'root';
$db = 'inventory';
$socket = 'localhost:/Applications/MAMP/tmp/mysql/mysql.sock';

$link = mysql_connect(
   $socket, 
   $user, 
   $password
);
$db_selected = mysql_select_db(
   $db, 
   $link
);
然后你不使用结果连接——甚至检查它是否工作。您应该始终检查返回的值,以查看它是否实际工作或是否返回了FALSE。您再次重新连接,不必费心检查它是否工作:

//connect to database
$db = mysql_connect("localhost", "root", "", "authentication");
在这样做的过程中,您将$db重新定义为其他内容

此外,您运行查询时未检查其是否成功:

        mysql_query($db, $sql);
        $_SESSION['message'] = "Find a Table";
        $_SESSION['username'] = $username;
        header("location: HomePage.html"); //redirect to homepage 
您应该检查mysqli_查询的结果(而不是代码中的mysql_查询),看看它返回了什么。如果INSERT查询有效,则应为TRUE


重定向后,无法调用exit,这意味着重定向尝试后的所有代码最终都可能实际执行。

请不要使用mysql。PHP7.0中不推荐使用该函数。使用mysqli:我的MAMP服务器设置为PHP5.6,我想了解一下mysql,因为它在web上非常普及。我想你应该使用
$\u POST
而不是
$\u POST
我的经验更多的是使用sqlsrv,所以我可能会偏离基准,但如果你在我的服务器上安装了socket,我就使用“LOCALHOST/SQLEXPRESS”(显然不同于适合您的)首先运行连接测试,即,`if($db){echo“sql连接成功”}否则{die!;}这将告诉您其连接是否正确,其次,检查您的sql端口是否正在侦听(应为1433)在sql Manager中。Mysql是因为PHP 7.0中不推荐使用PHP 5.5而被删除的。学习它不是问题,但要正确地学习它。语法有一点变化,所以您可以为将来学习:)好的,那么您对如何修复问题有什么建议吗?我理解您对Mysql的看法,但正如我在问题中所说的,我的脚本中没有包含最上面的代码,那是MAMP站点上给我的代码。我没有把它包括在内,因为我不知道它放在哪里。每个人都必须从某个地方开始,兄弟,这对某些人来说可能是基本的,但我不知道你指的是什么连接,或者如何检查它。@andrew我相信S.Imp是在谈论与sql数据库的连接,所以如果你输入一个if语句来检查数据库连接,即
if(!$link){echo“连接失败!”}
您将收到一条消息,说明您没有连接到数据库,第二条消息是关于确保查询成功执行,再次使用if块分配您的查询(mysqli_查询),并对变量使用if语句。查询语句的布尔值响应为true/false。@在任何给定脚本中,您只需连接到数据库一次,除非您正在处理极不寻常的情况。您的脚本连接两次,并使用了错误的函数和参数。请使用mysqli_connect函数。看一看php文档。它真的很有帮助,这里会有一个例子:好的,谢谢你们,这给了我一些可以使用的东西!
        mysql_query($db, $sql);
        $_SESSION['message'] = "Find a Table";
        $_SESSION['username'] = $username;
        header("location: HomePage.html"); //redirect to homepage