2012-11-06 55 views
0

我在表格中的非常列: 例:如何設置變量的值是DBNull?

temperature character varying(5), 
    atmosphericpressure integer, 
    humidity integer, 
    perceptiondistinction1_cd character varying(6), 
    perceptiondistinction2_cd character varying(6), 
    timeprogress character varying(1), 
    telegramreceived_datetime timestamp without time zone, 
    order_datetime timestamp without time zone, 
    outbreak_datetime timestamp without time zone, 
    locationarrival_datetime timestamp without time zone, 
    touch_datetime timestamp without time zone, 
    insidecar_datetime timestamp without time zone, 
    starting_datetime timestamp without time zone, 
    hospitalarrival_datetime timestamp without time zone, 
    hospitalaccommodate_datetime timestamp without time zone, 
    pulling_datetime timestamp without time zone, 
    return_datetime timestamp without time zone, 
    spotdistance integer, 
    spottohospital integer, 
    returnstationdistance integer, 
    receiveorderplace_cd character varying(6), 
    changehospital1medicalsystem_cd character varying(6), 
    requestorganization_cd character varying(6), 
    changehospital1openincident_cd character varying(6), 
    requestorganizationname character varying(120), 
    doctorfellowpassenger character varying(1), 
    changehospitalreason_cd character varying(6), 
    nottransportation_cd character varying(6), 
    coodinationdoctorcar character varying(6), 
    entrydoctorcarhelicopterrequest_cd character varying(6), 
    entryoperation_cd character varying(6), 
    entrymultiplexcooperation_cd character varying(6), 
    partymember1 integer, 
    ownambulancecount integer, 
    paramedicembarkation_cd character varying(6), 
    paramedicclassication_cd character varying(6), 
    doctoremvarkation_cd character varying(6), 
    preventiongloves character varying(1), 
    preventiongoggles character varying(1), 
    preventionmask character varying(1), 
    preventiongown character varying(1), 
    spotbreathingset character varying(1), 
    carryoxygen character varying(1), 
    carryaspirator character varying(1), 
    carrydefibrillator character varying(1), 
    spotexternalwoundset character varying(1), 
    spotcervicalspine character varying(1), 
    carrybackboard character varying(1), 
    spotstretcher character varying(1), 
    carryother character varying(1), 
    switchingdivision_cd character varying(6), 
    switchingdelivery_cd character varying(6), 
    reportsuddenly character varying(1), 
    reportsnore character varying(1), 
    reportgiddiness character varying(1), 
    reportconsciousness character varying(1), 
    reportconsciousness_cd character varying(6), 
    reportbath character varying(1), 
    reportconvulsion character varying(1), 
    reporttoilet character varying(1), 
    reportindeisposed character varying(1), 
    reportmeal character varying(1), 
    reportentrance character varying(1), 
    reporthematemesis character varying(1), 
    reportheratdisease character varying(1), 
    reportheart character varying(1), 
    reportbreath character varying(1), 
    reportbreath_cd character varying(6), 
    reportvomiting character varying(1), 
    reportrespiratorydscomfort character varying(1), 
    reportpainful character varying(1), 
    reporthurt character varying(1), 
    reportslurring character varying(1), 
    reportsufferingheart character varying(1), 
    reportchestpain character varying(1), 
    reportstomachache character varying(1), 
    reportheadache character varying(1), 
    reportlumbago character varying(1), 
    reportbackache character varying(1), 
    reportconversation character varying(1), 
    reportconversation_cd character varying(6), 
    reportnotstand character varying(1), 
    reporthypoglycemia character varying(1), 
    reportnotexstinghouse character varying(1), 
    reportdrink character varying(1), 
    reporttemperature character varying(1), 
    reportindooroutdoor character varying(1), 
    reportindooroutdoor_cd character varying(6), 
    reportasthma character varying(1), 
    oralinstruction_cd character varying(6), 
    instructionon_cd character varying(6), 
    instructionoff_cd character varying(6), 
    oralguidanceambulanceteam character varying(1), 
    oralguidancedirector character varying(1), 
    oralguidancedirector_cd character varying(6), 
    victimrespiratorysubstance character varying(1), 
    victimnoconsciousness character varying(1), 
    victimnotmove character varying(1), 
    victimchestpain character varying(1), 
    victimdyspnea character varying(1), 
    victimextenalhemorrhage character varying(1), 
    victimother character varying(1), 
    guidancecontetsobservation character varying(1), 
    guidancecontetsposition character varying(1), 
    guidancecontetsairway character varying(1), 
    guidancecontetsremoval character varying(1) 

整數列或時間戳如果值是「」會被錯誤,當插入或更新。例如:

$atmosphericpressure =''; 
$humidity =''; 
$order_datetime=''; 
$outbreak_datetime=''; 
$locationarrival_datetime =''; 

Update A set atmosphericpressure ='$atmosphericpressure',humidity = '$humidity',order_datetime='$order_datetime',outbreak_datetime='$outbreak_datetime',... 

如何設置一個變量的值是DBNull?

回答

1

你可以寫一個函數將字符串轉換成數據庫表達式:

function toDB($string) { 
    if ($string == '') { 
    return 'null'; 
    } else { 
    return "'$string'"; 
    } 
} 

,並用它來創建查詢:

$sql = "Update A set atmosphericpressure = {toDB($atmosphericpressure)},humidity = {toDB($humidity)},order_datetime= {toDB($order_datetime)},..."; 

根據項目的大小,這將是更好地通過使用對象關係映射器來抽象數據庫訪問,有些建議可以在this question中找到。