将空值添加到所有mysql行而不是仅添加到目标行

时间:2016-06-24 18:23:49

标签: php mysql

在将数据提交到我的服务器后,正在向我的MySQL行添加空列。我将它输入一行但所有行至少得到一个空列。我怎么能阻止这个?这是一个例子。任何说0bytes都是空行。

See empty rows?

到目前为止我的PHP代码(当我弄清楚这一部分时会被挖空)

<?php
    $servername = ""; //Taken out for stack overflow question
    $username = ""; //Taken out for stack overflow question
    $password = ""; //Taken out for stack overflow question  
    $dbname = ""; //Taken out for stack overflow question

    $conn = mysqli_connect($servername, $username, $password, $dbname);

    if (!$conn)
    {
        echo 'Could not connect';
    }
    else 
    {
        if (!empty($_FILES['cf'] && $_POST['category']))
        {
            /*foreach($_FILES['cf']['name'] as $key => $name)
            {
                if ($_FILES['cf']['error'][$key] == 0)
                {
                    mysqli_query($conn, "");
                }
            }*/
            $category = $_POST['category'];
            $cf = $_FILES['cf'];
            mysqli_query($conn, "INSERT INTO adDatabase(".$category.") VALUES(8)");
        }
        else 
        {
            echo 'Empty file';
        }
    }

    mysqli_close($conn);
?>

我想阻止那些空行。在我从服务器检索它们的恢复php文件中,我将内容包装在<img>标记中,以便从这些行中获取的任何内容都显示为图像。我不希望损坏的图像或空框架与其他广告一起显示。我怎么能阻止这个?

2 个答案:

答案 0 :(得分:0)

您是否尝试将类别的内容打印到控制台?是否有可能从源回发有效类别和空类别?

您还可以尝试使用针对类别的nul检查来封装sql调用。这可能会在插入之前捕获null。

$category = $_POST['category'];
$cf = $_FILES['cf'];

if($category != NULL)
{
    mysqli_query($conn, "INSERT INTO adDatabase(".$category.") VALUES(8)");
}

最后,您可以将表中的一列设置为不允许空值。这将允许您放置一个try catch块并处理空数据

Try {
    mysqli_query($conn, "INSERT INTO adDatabase(".$category.") VALUES(8)");
} 
catch (exception ex)
{
    // do nothing!
}

答案 1 :(得分:0)

无论何时执行insert查询,sql都会插入整行。如果您只指定一列,那么所有其他列将填充null(或默认值为)。

如果你想填充行中的其他列,你可以这样做..

insert into table (col1, col2) values ('val1', 'val2')

如果您要更新现有行中的列..

Update table set column = 'value' where col='somevalue'

底线是,你可以;创建一行,并且只能填充一列。没有意义..你期待这样的事情发生在哪里?

enter image description here