简体   繁体   English

防止将空字符串插入数据库

[英]prevent insert empty string to database

i have this insert statement and i wold like to prevent the insert of rows where the item value is empty 我有这个插入语句,我想防止在项目值为空的行中插入

 <?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 ?> 

how can i prevent of insert each row where the item1 or item2 or item3 value is empty? 如何防止在item1或item2或item3值为空的每一行插入? and insert only the rows where the item value is no empty ? 并仅插入项目值不为空的行?

the result i get now is 8 rows in my database table with empty cell in the item column 我现在得到的结果是数据库表中的8行,其中item列中的单元格为空

I imagine you needs insert 8 items, like a details right? 我想您需要插入8个项目,例如详细信息,对不对?

You can create a function to do the insert in the database, so on that case you will be able to call that funcion every time when the item isn't empty. 您可以创建一个函数来在数据库中进行插入,因此在这种情况下,您可以在项目不为空时每次调用该函数。

Something like so... 像这样...

<?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);
    }
}

BTW: I think you can organize better your code like MVC or so, well, let me know if this works for you 顺便说一句:我认为您可以像MVC那样更好地组织代码,好吧,让我知道这是否适合您

regards! 问候!

Try something like this: 尝试这样的事情:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM