INSERT INTO不适用于Mysql数据库

时间:2017-07-16 06:26:11

标签: php mysql sql forms

我是mysql的新手,无法插入字段。我创建了一个登录表单和一个主页表单供用户输入个人详细信息。登录表单提交给mysql数据库罚款,但个人详细信息表单拒绝提交;只有当我指定与第一个表单相同的字段时,表单才会提交。显然,我想在第二种形式中添加新数据,我希望有关组织数据库的提示,该数据库由一个表profile组成。它存储每个用户的信息,包括字段:idusernamepasswordavatarlocationgoal等。

感谢您的帮助&忍耐。我将最终将两个表单中的信息组合成一个用户记录。但是,现在,我想知道为什么没有创建新条目或显示错误信息,即使我的错误显示已打开。

编辑::抱歉不包括整个代码

loginform.php(工作正常)

<?php
require("connect.php");
session_start();
$query = "SELECT * FROM `profile`";
if ($query_run=mysqli_query($cnn,$query))
{
    echo "
    <h1>Sign up for Runners World</h1>
    <form action='' method='post'>
    Username: <input type='text' name='username'><br> 
    Email: <input type='text' name='email'><br>
    Password: <input type='text' name='pw'><br>
    <input type='submit' name='submit' value='submit'>
    </form>
    ";
}
else {
die("<br>could not connect to table");
}
?>
<?php
if (isset($_POST['submit']))//if you submitted the form
{

$username = $_POST['username'];
$password = $_POST['pw'];
$email = $_POST['email'];

    if ($username and $password and $email)
    {
    $addLogin = "INSERT INTO profile (username,email,password) VALUES ('$username','$email','$password')";
    $success = $cnn->query($addLogin);
        if ($success)
        {
            $_SESSION['name']="$username";
            echo("<script>location.href = 'homePage.php';</script>");
        }
        else 
        {
            die("login data failed to reach database");
        }
    }
    else {echo "please fill out all the fields";}   
}
else {
$submit=null;
echo 'no form submitted';
}


?>

addDetails.php(不提交)

<?php
session_start();
error_reporting(E_ALL);
ini_set("display_errors",1);
require("connect.php");
require("login.php");
echo "<h1>Welcome ".$_SESSION['name']."</h1>";

echo "<form action='' method='post'>
Avatar: <input type='text' name='avatar'><br>
Location: <input type='text' name='location'><br>
Descripiton: <input type='text' name='about'><br>
Daily Goal: <input type='text' name='goal'><br>
<input type='submit' value='submit' name='submit'>
</form>
";

$avatar = $_POST['avatar'];
$location = $_POST['location'];
$goal = $_POST['goal'];
$about = $_POST['about'];

if (isset($_POST['submit']))
{
$sql = "INSERT INTO profile (avatar,location,goal) VALUES ('$avatar','$location','$goal')";
    if ($cnn->query($sql)===TRUE)
        {echo "you have inserted profile fields";}
    else 
        {echo "sqlQuery failed to insert fields";}
}
?>

2 个答案:

答案 0 :(得分:1)

如果要将数据添加到已存在的行,请在SQL

中查找UPDATE命令

答案 1 :(得分:1)

您应该将' addDetails.php '中的Sql语句更改为:

UPDATE profile 
SET avatar={$avatar}, location={$location}, goal={$goal} 
WHERE id={$id}

顺便说一句,你永远不应该在你的制作中使用这个语句,这是不安全的,你应该记住防止Sql注入。