【问题标题】:Why won't my php connection to mysql server work?为什么我的 php 连接到 mysql 服务器不起作用?
【发布时间】:2013-11-12 11:26:11
【问题描述】:

您好,我正在尝试将信息发送到 Sequel pro 中显示的本地 mysql 服务器。我有一个 html 表单,如下所示:

    <a href="#openRegisterModal" id="main_header_register">register</a>
<div id="openRegisterModal" class="modalRegisterDialog">
    <section>
        <a href="#close" title="Close" class="close">X</a>
        <h1>Register</h1>
        <form name="registerform" class="registerform">
            <label for="usernamefield">Username: </label>
            <br>
            <input type="text" id="usernameregisterfield"></input>
            <br>
            <label for="emailfield">Email: </label>
            <br>
            <input type="text" name="emailfield" id="emailregisterfield"></input>
            <br>
            <label for="passwordfield">Password: </label>
            <br>
            <input type="password" name="passwordfield" id="passwordregisterfield"></input>
            <br>
            <label for="passwordrepeatfield">Repeat Password: </label>
            <br>
            <input type="password" name="passwordrepeatfield" id="passwordrepeatregisterfield"></input>
            <br>
            <!--Check field-->
            <br>
            <input type="checkbox" name="agreementbox" id="agreementbox"></input>
            <label for="agreementbox" id="termslink">I agree to the </label>
            <a href="" id="termslink">terms</a>
            <br>
            <input type="button" id="registerbutton" value="Register" onclick="registerUser()">

        </form>
    </section>
</div>

当我点击注册按钮时,这个 javascript 函数应该被调用:

function initiate() {

}

function registerUser()
{

    var username = document.getElementById("usernameregisterfield").value;
    var email = document.getElementById("emailregisterfield").value;
    var password = document.getElementById("passwordregisterfield").value;


    console.log("Username: " + username);
    console.log("Email: " + email);
    console.log("Password: " + password);

    if (window.XMLHttpRequest)
    {
        // Code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else
    {
        // Code for IE6, IE5
        xmlhttp = ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.open("GET",
                 "RegisterUser.php?username=" + username
                 + "&email=" + email
                 + "&password=" + password,
                 true);

    xmlhttp.send();


}

initiate('load');

然后应该调用这个 php 文件:

<?php

    $username = strval($_GET['username']);
    $email = strval($_GET['email']);
    $password = strval($_GET['password']);

    $connection = mysql_connect('localhost', 'root', '')
        or die("Unable to connect to database");


    $database = mysql_select_db("myDatabase")
        or die("Could not select database");

    $sql = "INSERT INTO registered_users VALUES ('$username', '$email', '$password');";
    $execute = mysql_query($sql);


?>

但是当我尝试这个时,什么都没有发生。我什至没有收到错误消息。

有人请帮帮我!

【问题讨论】:

  • 不要使用 mysql... 使用 mysqli 或 PDO
  • 我试过没有任何区别
  • 这不是答案,而是评论。它不应该解决你的问题。

标签: javascript php mysql connection sequelpro


【解决方案1】:

我认为您需要在查询中添加 $connection。

首先将你的数据库添加到连接语句中

$connection = mysql_connect('localhost', 'root', '', 'myDatabase')
    or die("Unable to connect to database");

然后在您构建查询后将下一行更改为此

$execute = mysql_query($connection, $sql);

这一切都假设您实际上正在访问 PHP 文件,而这正是问题所在。

【讨论】:

  • 您确定它实际上是在访问 PHP 吗?尝试运行 exit("test");在顶部,看看你是否真的到达那里。
  • 同意。它可能没有进入 php 文件。更重要的是没有处理程序回来说“用户注册”。另外,远离mysql。这些陈述目前的立场很容易被利用。
  • 写exit("test"); ?
  • 它应该停止并在屏幕上打印“test”。您可能需要查找一些有关使用 AJAX 的教程。此外,当我这样做时,我使用 Firebug 来查看被发送到 PHP 页面的 javascript 变量以及任何被回显到 javascript 的变量,正如上面提到的关于处理程序返回的@John
【解决方案2】:

您错过了添加数据库连接以选择 DB。你应该写

$database = mysql_select_db("myDatabase", $connection)
    or die("Could not select database");

【讨论】:

  • 您遇到什么类型的错误...您是否在浏览器的任何位置看到此文本Could not select database
最近更新 更多