我从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);
答案 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);