簡體   English   中英

防止將空字符串插入數據庫

[英]prevent insert empty string to database

我有這個插入語句,我想防止在項目值為空的行中插入

 <?php require_once 'app/helpers.php'; session_start(); $error = ''; $link = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD, MYSQL_DB); mysqli_set_charset($link,"utf8"); $id = $_SESSION['user_id'] ; $type = $_SESSION['user_rule']; if($_POST) { $name = $_POST['name']; $email = $_POST['email']; $tel = $_POST['tel']; $prod = $_POST['prod']; $for = $_POST['for']; $s_date = $_POST['s_date']; $s_time = $_POST['s_time']; $e_date = $_POST['e_date']; $e_time = $_POST['e_time']; $item1 = $_POST['itm1']; $item2 = $_POST['itm2']; $item3 = $_POST['itm3']; $item4 = $_POST['itm4']; $item5 = $_POST['itm5']; $item6 = $_POST['itm6']; $item7 = $_POST['itm7']; $item8 = $_POST['itm8']; $notes = $_POST['notes']; if (empty($prod)) { $error = '<div class="alert alert-danger alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מי מפיק את כל הכיף הזה? בבקשה לרשום </div>'; } elseif (empty($for)) { $error = '<div class="alert alert-danger alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> כן? למי הציוד הולך בבקשה? </div>'; } elseif (empty($s_date)) { $error = '<div class="alert alert-danger alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מתי מתחיל כל הכיף הזה? </div>'; } elseif (empty($s_time)) { $error = '<div class="alert alert-danger alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> באיזה שעה מתחיל הכיף?</div>'; } elseif (empty($e_date)) { $error = '<div class="alert alert-danger alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מתי נגמר הכאב ראש הזה?</div>'; } elseif (empty($e_time)) { $error = '<div class="alert alert-danger alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> באיזה שעה נגמר הכאב ראש? שנדע לקחת כדור </div>'; } else { if (!empty($item1)) { $rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes) VALUES ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item1','$type','$notes') "; mysqli_query($link, $rent); $error = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>'; } if (!empty($item2)){ $rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes) VALUES ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item2','$type','$notes') "; mysqli_query($link, $rent); $error = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>'; } if (!empty($item3)){ $rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes) VALUES ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item3','$type','$notes') "; mysqli_query($link, $rent); $error = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>'; } if (!empty($item4)){ $rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes) VALUES ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item4','$type','$notes') "; mysqli_query($link, $rent); $error = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>'; } if (!empty($item4)){ $rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes) VALUES ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item4','$type','$notes') "; mysqli_query($link, $rent); $error = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>'; } if (!empty($item5)){ $rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes) VALUES ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item5','$type','$notes') "; mysqli_query($link, $rent); $error = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>'; } if (!empty($item6)){ $rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes) VALUES ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item6','$type','$notes') "; mysqli_query($link, $rent); $error = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>'; } if (!empty($item7)){ $rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes) VALUES ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item7','$type','$notes') "; mysqli_query($link, $rent); $error = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>'; } if (!empty($item8)){ $rent = "INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes) VALUES ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item8','$type','$notes') "; mysqli_query($link, $rent); $error = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>'; } } } ?> <?= $error ?> 

如何防止在item1或item2或item3值為空的每一行插入? 並僅插入項目值不為空的行?

我現在得到的結果是數據庫表中的8行,其中item列中的單元格為空

我想您需要插入8個項目,例如詳細信息,對不對?

您可以創建一個函數來在數據庫中進行插入,因此在這種情況下,您可以在項目不為空時每次調用該函數。

像這樣...

<?php
require_once 'app/helpers.php';
session_start();
$error = '';

$link = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD, MYSQL_DB);
mysqli_set_charset($link,"utf8");

$id = $_SESSION['user_id'] ;

$type = $_SESSION['user_rule'];

if($_POST){

    $item1 = $_POST['itm1'];
    $item2 = $_POST['itm2'];
    $item3 = $_POST['itm3'];
    $item4 = $_POST['itm4'];
    $item5 = $_POST['itm5'];
    $item6 = $_POST['itm6'];
    $item7 = $_POST['itm7'];
    $item8 = $_POST['itm8'];

if(empty($prod)){
    $error = '<div class="alert alert-danger alert-dismissable">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מי מפיק את כל הכיף הזה? בבקשה לרשום  </div>';

}elseif (empty($for)){
    $error = '<div class="alert alert-danger alert-dismissable">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> כן? למי הציוד הולך בבקשה? </div>';
}elseif (empty($s_date)){
    $error = '<div class="alert alert-danger alert-dismissable">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> מתי מתחיל כל הכיף הזה?  </div>';
}elseif (empty($s_time)){
    $error = '<div class="alert alert-danger alert-dismissable">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>  באיזה שעה מתחיל הכיף?</div>';
}elseif(empty($e_date)){
    $error = '<div class="alert alert-danger alert-dismissable">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>  מתי נגמר הכאב ראש הזה?</div>';
}elseif (empty($e_time)){
    $error = '<div class="alert alert-danger alert-dismissable">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> באיזה שעה נגמר הכאב ראש? שנדע לקחת כדור </div>';
}else{

    insertItem($item1, $_POST);
    insertItem($item2, $_POST);
    insertItem($item3, $_POST);
    insertItem($item4, $_POST);
    insertItem($item5, $_POST);
    insertItem($item6, $_POST);
    insertItem($item7, $_POST);
    insertItem($item8, $_POST);

    $error = '<div class="alert alert-success alert-dismissable">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> הזמנתך בוצעה - עכשיו חכה בסבלנות אל תאכל את הראש </div>';

}


}


?>

    <?= $error ?>

<?php

function insertItem($item, $post) {
    // this should prevent to insert an empty item in the database
    if (!empty($item)) {
        $name = $post['name'];
        $email = $post['email'];
        $tel = $post['tel'];
        $prod = $post['prod'];
        $for = $post['for'];
        $s_date = $post['s_date'];
        $s_time = $post['s_time'];
        $e_date = $post['e_date'];
        $e_time = $post['e_time'];
        $notes = $_POST['notes'];

        $rent = "
        INSERT INTO rent (u_name,u_id,mail,phone,prod,rent_for,start_d,start_t,end_d,end_t,item,user_type,notes)
            VALUES 
        ('$name','$id','$email','$tel','$prod','$for','$s_date','$s_time','$e_date','$e_time','$item','$type','$notes')";
        mysqli_query($link,$rent);
    }
}

順便說一句:我認為您可以像MVC那樣更好地組織代碼,好吧,讓我知道這是否適合您

問候!

嘗試這樣的事情:

if(isset($_POST['name']) && $_POST['name']!=""){
    // do something
}

暫無
暫無

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

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