这是我将用户添加到mysql数据库的代码,我真的不知道它为什么不提交它...
<?php include 'includes/header.php'; ?>
<?php
if (isset($_post['submit'])) {
$ime_priimek = $_post['ime_priimek'];
$spol = $_post['spol'];
$razred = $_post['razred'];
$slika = $_post['slika'];
$sql = mysqli_query($con, "INSERT INTO uporabniki (ime_priimek, spol, razred, slika) VALUES ('". $ime_priimek ."' , '". $spol ."' , '". $razred ."' , '". $slika ."' , )" or die(mysql_error()));
echo "Dodan";
} else {
echo "Ni dodan";
}
?>
<div class="container main">
<div class="row">
<div class="col-lg-8">
<div class="panel panel-primary">
<div class="panel-heading">Dodaj uporabnika</div>
<div class="panel-body">
<form role="form" action="admin.php?g=miha" method="post" accept-charset="utf-8">
<div class="form-group">
<label for="ime_priimek">Ime in priimek:</label>
<input type="text" name="ime_priimek" class="form-control" id="ime_priimek" placeholder="Andrej Novak">
</div>
<div class="form-group">
<label for="spol">Spol:</label>
<input type="text" name="spol" class="form-control" id="spol" placeholder="Moški">
</div>
<div class="form-group">
<label for="razred">Razred:</label>
<input type="text" name="razred" class="form-control" id="razred" placeholder="2. Mb">
</div>
<div class="form-group">
<label for="slika">Slika:</label>
<input type="text" name="slika" class="form-control" id="slika" placeholder="https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-ash3/1391614_10200902760433385_105742999_n.jpg">
</div>
<button class="btn btn-primary" name="submit" type="submit">Dodaj</button>
</form>
</div>
</div>
</div>
我找不到为什么此代码不会在我的数据库中插入数据的原因。 请帮忙!
答案 0 :(得分:1)
首先,$_POST
是superglobal,必须是大写字母$_POST
你们都是小写的$_post
我还注意到您发布的代码中没有$con
的数据库凭据。
你需要做一些事情来影响:
$con=mysqli_connect("xxx_host", "xxx_user", "xxx_password");
mysqli_query($con, "INSERT INTO uporabniki (ime_priimek, spol, razred, slika) VALUES
('". $ime_priimek ."' , '". $spol ."' , '". $razred ."' , '". $slika ."' )" or die(mysql_error()));
你在'". $slika ."' , )"
您也可以尝试这种方法:
$mysql_hostname = 'xxx';
$mysql_username = 'xxx';
$mysql_password = 'xxx';
$mysql_dbname = 'xxx';
$con= new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password);
$sql = $con->prepare("INSERT INTO uporabniki (ime_priimek, spol, razred, slika) VALUES (?, ? ,? ,?)");
$sql->bindParam(1, $ime_priimek);
$sql->bindParam(2, $spol);
$sql->bindParam(3, $razred);
$sql->bindParam(4, $slika);
$sql->execute();
答案 1 :(得分:1)
您的代码中存在多个错误。
$_post
?除非您自己声明,否则PHP只有$_POST
。 Variable names are case-sensitive
我认为这基本上就是为什么你的插入不起作用,而且还有更多。
您正在获取从客户端发送的值,并将它们直接放入SQL查询中。不好的举动。也许你想学习SQL Injection的原则以及如何防止它。
另外,我不知道mysql_error()
将如何帮助你,因为你正在使用MySQLi。请改为mysqli_error()
。
答案 2 :(得分:0)
您需要将$ _post更改为大写。像:
<?php
if (isset($_POST['submit'])) {
$ime_priimek = $_POST['ime_priimek'];
$spol = $_POST['spol'];
$razred = $_POST['razred'];
$slika = $_POST['slika'];
$sql = mysqli_query($con, "INSERT INTO uporabniki (ime_priimek, spol, razred, slika) VALUES ('". $ime_priimek ."' , '". $spol ."' , '". $razred ."' , '". $slika ."' , )" or die(mysql_error()));
echo "Dodan";
} else {
echo "Ni dodan";
}
?>
答案 3 :(得分:0)
每次格式化查询都很好。如果您已经格式化了自己的格式,那么您应该看到最后还有一个额外的
$query = "INSERT INTO uporabniki (ime_priimek, spol, razred, slika)";
$query .= " VALUES ('". $ime_priimek ."','". $spol ."','". $razred ."','". $slika ."')";
$sql = mysqli_query($con, $query) OR die("ERROR: ".mysqli_error());