簡體   English   中英

為什么這不會插入表格?

[英]Why this won't insert into table?

這是我將用戶添加到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>

我找不到為什么這段代碼不會在我的數據庫中插入數據的原因。 請幫忙!

首先, $_POST是一個超全局 ,必須像$_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 ."' , )"有一個迷路逗號'". $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();

您的代碼中存在多個錯誤。

$_post 除非你自己聲明,否則PHP只有$_POST 變量名稱區分大小寫

我想這就是為什么你的插入不起作用,然而,還有更多。

您將獲取從客戶端發送的值,並將其直接放入SQL查詢中。 不好的舉動。 也許您想學習SQL注入的原理以及如何防止它。

另外,我沒有看到mysql_error()將如何幫助你,你使用MySQLi。 請嘗試使用mysqli_error()

您需要將$ _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";
    }
 ?>

每次格式化查詢都很好。 如果你已經形成了你的結構,你應該看到最后有一個額外的

$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());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM