$ADODB_FORCE_TYPE adodb设置的强制赋值类型
adodb在执行 update 或 insert 类型的sql语句时,会考虑php中的空值在数据库中是否被接受, 如sql server中的空值必须用NULL表示, 所以设定了几种强制类型.0.忽略所有空值,对PHP中的空值不做处理
1.只对null进行处理,将PHP中的null值 或 null字串 处理成数据库识别的无值形式.(如sql server 的 NULL)
2.只对null进行处理,将PHP中的null值 或 null字串 处理成数据库识别的空值形式.(字串形式处理成'',数字形式处理成0)
3.对null和''等空值进行处理,转化成数据库识别的空值形式.define('ADODB_FORCE_IGNORE',0); 
define('ADODB_FORCE_NULL',1); 
define('ADODB_FORCE_EMPTY',2); 
define('ADODB_FORCE_VALUE',3); 是已经设定好的, 使用时将此值赋给$ADODB_FORCE_TYPE

解决方案 »

  1.   

    我需要把记录的某个字段更新为空,怎么实现呢?
    我设置:
        define('ADODB_FORCE_NULL',1);
       $ADODB_FORCE_TYPE = ADODB_FORCE_NULL;
    error:
    1065: Query was empty
      

  2.   

    class  sfja{
        function updateNews($record,$id){
         global $adodbConn;
         $sqlForUpdate="select * from news_text where id=$id";
         $rs=$adodbConn->Execute($sqlForUpdate);
      $updateSQL = $adodbConn->GetUpdateSQL($rs,$record);
    $adodbConn->Execute($updateSQL);   
        }}
    control中
    $record[nt_title]=$_POST[title];
    $record[nt_content]=$_POST[content];
    $record[nt_author]=$_POST[author];
    $record[nt_intime]=(empty($_POST['intime']))?$nowDate:$_POST['intime'];
    $news->updateNews($record,$id);
    config中
    define('ADODB_FORCE_NULL',1);
    $ADODB_FORCE_TYPE = ADODB_FORCE_NULL;
    include('adodb423/adodb.inc.php');
    $adodbConn = &ADONewConnection('mysql'); 
    $adodbConn->debug = true;
    $adodbConn->PConnect($hostname_conn,$username_conn,$password_conn,$database_conn);
     楼上的帮看看
      

  3.   

    GetUpdateSQL(),GetInsertSQL()只是在要对数据添加或修改记录时,将PHP中的空值替换成数据库识别的空值写法,如果变量本身有值,这两个函数是不会对变量进行任何操作的.
      

  4.   

    现在的问题是:
       变量没有值或者为空,他的值我在update的表单中清除了.
       我想让他把数据库中该记录的这个字段也晴空了,怎么办
      

  5.   

    $updateSQL = $adodbConn->GetUpdateSQL($rs,$record);
    后先echo $updateSql看内容.
      

  6.   

    hb_lv at hotmail dot com.能通过msn联系吗?
      

  7.   

    如果你的$record是在类外设置的,在函数里加上global $record.
      

  8.   

    不应该是这个,我是用的函数参数传的值,$news->updateNews($record,$id);
    在类中print_r($record)的值为Array ( [nt_title] => 11111 [nt_content] => 4444444444 [nt_author] => [nt_intime] => 2004-11-16 )