插入语句不会插入,也没有错误

时间:2017-07-23 08:05:27

标签: php sql

我正在尝试将用户添加到数据库,但每当我尝试添加用户时,它表示用户已添加,但数据库显示没有新用户。 这是代码:

<form method="post" name="input" action=""> 
    <label>StaffID:<br/> <input name="staffid" type="number"><br></label>  
    <label>Username:<br/> <input name="username" type="text" min="0"><br></label>  
    <label>Password:<br/> <input name="password" type="text" min="0"><br></label>   
    <input type="submit" name="submit" value="Add User"> 
</form>

<?php
    $SID = $_POST['staffid']; 
    $UN = $_POST['username'];
    $PW = $_POST['password']; 

    $conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");

    if($SID !=''||$UN !=''||$PW !=''){
        $sql = "INSERT INTO staffusers(username, password, staffid) VALUES($UN, $PW, $SID)";
        mysqli_query($conn, $sql); 

        echo "<br><br><span>User added successfully!</span>";
    }
?>

我不知道我做错了什么,请帮助。

4 个答案:

答案 0 :(得分:1)

<?php
$SID = $_POST['staffid']; 
$UN = $_POST['username'];
$PW = $_POST['password']; 

$conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");

if($SID !='' && $UN !='' && $PW !=''){
  $sql = mysqli_prepare($conn, "INSERT INTO staffusers(username, password, staffid) VALUES (?, ?, ?)");
  mysqli_stmt_bind_param($sql, 'ssd', $UN,  $PW, $SID);
  if(mysqli_stmt_execute($sql)){
    echo "<br><br><span>User added successfully!</span>";
  }
}
?>

<强> 更改

  1. 使用mysqli_prepare()&amp; mysqli_stmt_bind_param()来 执行查询。

  2. if($SID !=''||$UN !=''||$PW !=''){更改为     if($SID !=''||$UN !=''||$PW !=''){

答案 1 :(得分:0)

<form method="post" name="input" action=""> 
    <label>StaffID:<br/> <input name="staffid" type="number"><br></label>  
    <label>Username:<br/> <input name="username" type="text" min="0"><br></label>  
    <label>Password:<br/> <input name="password" type="text" min="0"><br></label>   
    <input type="submit" name="submit" value="Add User"> 
</form>

<?php
    $SID = $_POST['staffid']; 
    $UN = $_POST['username'];
    $PW = $_POST['password'];

    $conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");

    if($SID !='' && $UN !='' && $PW !=''){
        $sql = "INSERT INTO staffusers(username, password, staffid) VALUES('$UN', '$PW', $SID)";
        mysqli_query($conn, $sql); 

        echo "<br><br><span>User added successfully!</span>";
    }
?>

您尝试在数据库中将字符串值作为整数插入。添加撇号将帮助您的MySQL语句将其作为字符串插入。

请耐心等待:如果您的一个或多个文本字段为空,则无法将$_POST s分配给变量。因此它会遇到错误。 使用$_POST检查isset()

我还在||语句中将&&替换为IF。插入空值也可能会产生错误。

答案 2 :(得分:0)

在代码中包含正确的错误检查,然后您可以看到错误。您可以尝试使用此修改后的代码(源自您的上述代码:记住公开您的服务器详细信息将邀请黑客)...

<form method="post" name="input" action=""> 
    <label>StaffID:<br/> <input name="staffid" type="number"><br></label>  
    <label>Username:<br/> <input name="username" type="text" min="0"><br></label>  
    <label>Password:<br/> <input name="password" type="text" min="0"><br></label>   
    <input type="submit" name="submit" value="Add User"> 
</form>

<?php
    if(isset($_POST['submit'])){
        $SID = $_POST['staffid']; 
        $UN = $_POST['username'];
        $PW = $_POST['password']; 

        //echo $SID.$UN.$PW;

        if($SID !='' && $UN !='' && $PW !=''){

            $con = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");
            // Check connection
            if (mysqli_connect_errno())
            {
                echo "Failed to connect to MySQL: " . mysqli_connect_error();
            }
            else
            {
                $sql = "INSERT INTO staffusers(username, password, staffid) VALUES($UN, $PW, $SID)";
                mysqli_query($conn, $sql); 
                echo "<br><br><span>User added successfully!</span>"; 
            }
        }
    }
?>

如果您在服务器上运行(在对 fdb14.awardspace.net 域地址移植的服务器具有远程SQL访问权限的服务器上),代码将起作用。 < / p>

但是如果您在localhost或其他服务器上运行代码,该服务器对 fdb14.awardspace.net 域地址所篡改的服务器具有远程SQL访问权限,则会收到此错误:警告: mysqli_connect():( HY000 / 2002):无法建立连接,因为目标计算机主动拒绝它。在第18行的C:\ Program Files(x86)\ EasyPHP-Devserver-16.1 \ eds-www \ remote-sql-test \ index.php中 无法连接到MySQL:无法建立连接,因为目标计算机主动拒绝它。

此错误不是来自您的代码,此错误与您的远程服务器设置相关(记住localhost也是服务器概念),您可能需要配置正确的远程SQL访问,有关远程SQL的更多详细信息,请参阅{{3 }}

答案 3 :(得分:0)

而不是

<?php
    $SID = $_POST['staffid']; 
    $UN = $_POST['username'];
    $PW = $_POST['password']; 

    $conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");

    if($SID !=''||$UN !=''||$PW !=''){
        $sql = "INSERT INTO staffusers(username, password, staffid) VALUES($UN, $PW, $SID)";
        mysqli_query($conn, $sql); 

        echo "<br><br><span>User added successfully!</span>";
    }
?>

使用此代码插入用户记录

<?php
if(isset($_POST['submit']))
{
    $SID = $_POST['staffid']; 
    $UN = $_POST['username'];
    $PW = $_POST['password']; 

    $conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");

    if($SID !=''||$UN !=''||$PW !=''){
        $sql = "INSERT INTO staffusers(username, password, staffid) VALUES('".$UN."','".$PW."','".$SID."')";
        $result=mysqli_query($conn, $sql);
            if(!$result)
            {
                echo "<br><br><span>not Inserted!</span>";
            }
            else
            {
                echo "<br><br><span>User added successfully!</span>";
            }


    }
}
?>