Php 不要在Mysqli查询中插入空值
我的表单中有一个字段数组Php 不要在Mysqli查询中插入空值,php,mysqli,Php,Mysqli,我的表单中有一个字段数组 <input type="text" class="form-control" name="event_title[]"> 我正在获取所有数据并成功插入数据库 $events = $_POST['event_title']; $totalEvents = sizeof($events); for($i = 0; $i < $totalEvents; $i++) { $event_title = $events[
<input type="text" class="form-control" name="event_title[]">
我正在获取所有数据并成功插入数据库
$events = $_POST['event_title'];
$totalEvents = sizeof($events);
for($i = 0; $i < $totalEvents; $i++) {
$event_title = $events[$i];
$sql1 = "INSERT INTO event_title (event_id, event_title)
VALUES (
'".$lastid."',
'".$event_title."'
)";
$result1 = mysqli_query($conn,$sql1);
$events=$\u POST['event\u title'];
$totalEvents=sizeof($events);
对于($i=0;$i<$totalEvents;$i++){
$event_title=$events[$i];
$sql1=“插入事件标题(事件id、事件标题)
价值观(
“$lastid。”,
“$event_title.”
)";
$result1=mysqli\u查询($conn,$sql1);
我的问题是如何防止在数据库中插入空值?只需检查变量是否为空即可使用!=''
$events=$\u POST['event\u title'];
$totalEvents=sizeof($events);
对于($i=0;$i<$totalEvents;$i++){
$event_title=$events[$i];
如果($event_title!=''){
$sql1=“插入事件标题(事件id、事件标题)
价值观(
“$lastid。”,
“$event_title.”
)";
$result1=mysqli\u查询($conn,$sql1);
}
}
您可以在创建或修改表时创建非空
约束
如果尚未创建表,请执行以下操作:
CREATE TABLE authors(
author_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
author_name VARCHAR(40) NOT NULL,
bio VARCHAR(400) NULL
)
您可以向列添加notnull
约束,以防止NULL
值
如果已经创建了表,则可以修改:
ALTER TABLE table
ALTER COLUMN column NOT NULL;
试一试
$totalEvents=sizeof($\u POST['event\u title']);
对于($i=0;$i<$totalEvents;$i++){
$event_title=$events[$i];
if(strlen($event_title)==0){
继续;
}
$sql1=“插入事件标题(事件id、事件标题)
价值观(
“$lastid。”,
“$event_title.”
)";
$result1=mysqli\u查询($conn,$sql1);
}
首先,我要澄清一个常见的误解
NULL与FALSE、空字符串或0的含义不同。它是NULL。它本质上表示“未知”
非空字符串字段可以有空值,但不能有空值(即可以知道它是空字符串,但不能未知)
对于您的问题,如果在您尝试向数据库中插入任何内容之前很久没有设置任何字段,那么您的表单验证应该开始
以下是伪代码中的工作流:
DO {
GET form submission.
WHILE (form is not valid);
insert form values into database.
如果规则是您的表不允许空值-作为验证的一部分,请检查这些列是否为空,如果为空,则验证失败。检查变量是否为空。如果($variable!=null){//插入它}否则{//它为空,抛出异常}还可以使用代码将数据库表架构/列更改为
非NULL
。无法在数据库中插入NULL值。如果($event\u title!=NULL)存在较大差异,为什么不能使用?
$totalEvents = sizeof($_POST['event_title']);
for ($i = 0; $i < $totalEvents; $i++) {
$event_title = $events[$i];
if (strlen($event_title) == 0) {
continue;
}
$sql1 = "INSERT INTO event_title (event_id, event_title)
VALUES (
'" . $lastid . "',
'" . $event_title . "'
)";
$result1 = mysqli_query($conn, $sql1);
}
DO {
GET form submission.
WHILE (form is not valid);
insert form values into database.