试图插入到mysql数据库中忽略空白字段

时间:2014-03-11 15:15:28

标签: php mysql insert

我从HTML表单中获取数据并插入到mysql数据库中。并非所有字段都是强制性的,因此如果它们为空,我会尝试忽略这些字段。

我有两个问题。第一个找到处理空白字段的方法,第二个实际上是写入数据库。

以下是我到目前为止所做的事情:

    //check if fields are empty
    $insertStrSet = '';
    if($submitted_telephone !== '') {$insertStrSet .= 'telephone=\'$submitted_telephone\',';}
    if($submitted_address !== '') {$insertStrSet .= 'address=\'$submitted_address\',';}
    if($has_image !== ''){ $insertStrSet .= 'has_image=\'$has_image\',';}
    if($final !== ''){ $insertStrSet .= 'image_id=\'$final\',';}    
    $insertStrSet = substr($insertStrSet,0,-1);

    //create sql query
    $insert = "INSERT INTO directory_listings cat_id='$submitted_category', user_id='$user_id', site_name='$submitted_name', description='$submitted_description', url='$submitted_url', country='$submitted_country', email='$submitted_email', $insertStrSet";

mysql_query($insert);

1 个答案:

答案 0 :(得分:0)

您可以使用empty()函数进行检查。并且您的SQL查询有一些语法错误。 SET丢失了。和逗号是虚假的。固定答案:

//check if fields are empty
$insertStrSet = '';
if(!empty($submitted_telephone)) {$insertStrSet .= 'telephone=\'$submitted_telephone\',';}
if(!empty($submitted_address)) {$insertStrSet .= ', address=\'$submitted_address\'';}
if(!empty($has_image)){ $insertStrSet .= ', has_image=\'$has_image\'';}
if(!empty($final)){ $insertStrSet .= ', image_id=\'$final\'';}    

//create sql query
$insert = "INSERT INTO directory_listings SET cat_id='$submitted_category', user_id='$user_id', site_name='$submitted_name', description='$submitted_description', url='$submitted_url', country='$submitted_country', email='$submitted_email' $insertStrSet";

mysql_query($insert);