我无法在我的数据库中插入任何内容。 $ result什么都不返回

时间:2016-01-22 10:24:27

标签: php mysqli

代码进入数据库但命令: "$result = mysqli_query($con, $sql);"似乎没有做任何事情。

<?php
    $con = mysqli_connect("localhost", "root", "", "diskotech") or die ("Couldn't connect to database!"); 

    if (isset($_POST["login"])){

    }
    else if (isset($_POST["signup"])){
        if (isset($_POST["username"]) && isset($_POST["password"]) && isset($_POST["email"])){
            $uQ = $_POST["username"];
            $pQ = $_POST["password"];
            $eQ = $_POST["email"];
            $sql = "INSERT INTO 'users'('UserID', 'Username', 'Password', 'E-mail', 'Firstbane', 'Lastname', 'Phone', 'Adsress', 'Credit Card') VALUES ('','$uQ','$pQ','$eQ', '', '', '', '','')";
            $result = mysqli_query($con, $sql);
            if ($result) {
                echo "Yes";
            }
            else {
                echo "No";
            }
        }
    }
    mysqli_close($con);

    function redirect($url, $statusCode = 303){
        header('Location: ' . $url, true, $statusCode);
        die();
    }
?>

4 个答案:

答案 0 :(得分:1)

有两个问题:

您在表格表名称和列名称中使用单引号。如果你真的需要,这应该是backticks

$sql = "INSERT INTO `users` (`UserID`, `Username`, `Password` , `E-mail`, `Firstbane`, `Lastname`, `Phone`, `Adsress`, `Credit Card`) ..

第二个问题,这是什么?列中的Credit Card,是您的列名还是拼写错误?如果是,那么根据@ gerald-schneider评论,这没有错,但不是一个好的做法。

旁注:

同时验证AdsressFirstbane列名称。

答案 1 :(得分:0)

在表格和列名称中使用 $sql = "INSERT INTO `users`(`UserID`, `Username`, `Password`, `E-mail`, `Firstbane`, `Lastname`, `Phone`, `Adsress`, `Credit Card`) VALUES ('','$uQ','$pQ','$eQ', '', '', '', '','')"; (`)标记。

$http.post(l_url, {data: l_params}).then(successCallback, errorCallback);
$http.post(l_url, l_params).then(successCallback, errorCallback);

答案 2 :(得分:0)

1)如果列名中使用hyphen( - ),请使用backtick(`)。否则会出现错误。

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近&#39; -mail =&#39; asd@g.com'&#39;在第1行

2)Credit Card列名用空格分隔,这也不是好习惯。使用backtick来避免此错误

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近&#39;卡=#&39; 909090909909&#39;&#39;在第1行

3)使用single quotes(`)从表名和列名中删除backtick(&#39;)。否则,错误

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近&#39;用户ID&#39; =&#39; 12&#39;&#39;在第1行

修改后的查询

$sql = "INSERT INTO `users` (`UserID`, `Username`, `Password` , `E-mail`, `Firstbane`, `Lastname`, `Phone`, `Adsress`, `Credit Card`) ..

答案 3 :(得分:-2)

通过以下方式补充插入查询:

 $sql = "INSERT INTO `users`(`UserID`, `Username`, `Password`, `E-mail`, `Firstbane`, `Lastname`, `Phone`, `Adsress`, `Credit Card`) VALUES ('','$uQ','$pQ','$eQ', '', '', '', '','')";