mysqli代码不会发送到数据库

时间:2015-12-08 22:53:13

标签: php mysql mysqli

我在这里搜索过,无法找到解决方案让我的代码工作,我正在尝试为成员创建一个简单的注册系统加入我的网站,但我无法看到我的PHP代码要发送到我已设置的数据库,这里是代码。

<?php require 'lpgamers/connections/connect.php'; ?>
<?php

    if(isset($_POST['Register'])) {

        session_start();
        $FName = $_POST['First_Name'];
        $LName = $_POST['Last_Name'];
        $Email = $_POST['Email'];
        $PW = $_POST['Password'];

        $sql = $con->query("INSERT INTO lpg-user-db (Fname, Lname, Email, Password)Values('{$FName}', '{$LName}', '{$Email}', '{$PW}')");
    }
?>
        <div class="rightbody">
          <form id="registerform" name="registerform" method="post">
            <div class="formelement">
                <input name="First_Name" type="text" required class="tfield" id="First_Name" placeholder="First Name">
            </div>
            <div class="formelement">
                <input name="Last_Name" type="text" required class="tfield" id="Last_Name" placeholder="Last Name">
            </div>
            <div class="formelement">
                <input name="Email" type="email" required class="tfield" id="Email" placeholder="Email">
            </div>
            <div class="formelement">
                <input name="Password" type="password" required class="tfield" id="Password" placeholder="Password">
            </div>
            <div class="formelement">
                <input name="Register" type="submit" class="button" id="Register" value="Register">
            </div>
          </form>

我还有一个需要的连接文件,我有这个设置,这确实连接到我的数据库

<?php

$con = mysqli_connect("localhost", "root", "", "lpgamers-user-db");

if (mysqli_connect_errno()) {
  printf('Connect failed: %s\n', mysqli_connect_error());
  exit();
}

?>

我在这里做错了还是这只是一个数据库问题,我现在正在使用wamp服务器进行测试?

先谢谢Rob。

1 个答案:

答案 0 :(得分:4)

mysqli_error($con)应该为此抛出错误,但您没有检查错误。

中的lpg-user-db表格
INSERT INTO lpg-user-db

包含连字符,MySQL正在将其解释为lpg MINUS user MINUS db,认为您希望它进行数学运算。

表名需要在其周围打勾:

INSERT INTO `lpg-user-db`

要么这样做,要么用下划线替换它们并重命名:

INSERT INTO lpg_user_db

参考文献:

旁注:如果您的表格中有任何限制,mysqli_error($con)会通知您。

如果您尝试输入的数据包含MySQL会抱怨的字符,例如John's Bar & Grill,那么您将需要转义数据;无论如何你应该做的事情。

$FName = mysqli_real_escape_string($con, $_POST['First_Name']);

并为其他POST阵列做同样的事情。

您也可以使用SQL注入,使用预准备语句。

<强>密码

我还注意到您可能以纯文本格式存储密码。不建议这样做。

使用以下其中一项:

其他链接: