Как запретить MySQL обновлять столбец с пустой строкой?

У меня есть форма для обновления сведений о пользователе, и им не нужно заполнять каждое поле. Из-за этого он будет передавать пустую строку в базу данных через POST. Это мой запрос:

$q = "UPDATE mdl_user SET firstname='$fname', lastname='$lname', email='$email', address='$address', city='$city', school='$school', phone1='$phone' WHERE id='$uid'"; 

Есть ли способ для MySQL проверить, является ли, например, $fname пустой строкой, и если он пуст, не обновляйте это поле?

Если нет, то как мне это сделать в PHP?

Solutions Collecting From Web of "Как запретить MySQL обновлять столбец с пустой строкой?"

Вы можете использовать оператор IF для каждого поля, которое необходимо проверить. Например :

 $q = "UPDATE mdl_user SET firstname=IF(LENGTH('$fname')=0, firstname, '$fname'), lastname=IF(LENGTH('$lname')=0, lastname, '$lname'), email=IF(LENGTH('$email')=0, email, '$email'), address='$address', city='$city', school='$school', phone1='$phone' WHERE id='$uid'"; 

Я бы сделал это

 <?php if ($fname) { $fname = "firstname='$fname',"; } else { $fname = ''; } $q = "UPDATE mdl_user SET $fname lastname='$lname', email='$email', address='$address', city='$city', school='$school', phone1='$phone' WHERE id='$uid'"; ?> 

Но вы действительно должны беспокоиться о том, насколько неуверен ваш код.

Сначала запустите инструкцию SELECT и выполните mysql_num_row (), если это возвращает значение > 0, затем exit ()