我用的是PHP,PRADO框架。
$conn = CApp::getDbConnection();
$sql = "ALTER TABLE aos_service_hostname ADD department_id int(11);";
$cmd = $conn->createCommand($sql);
$cmd->execute();想写一个完善的脚本,而现在假如表中已经存在department_id字段的话,就会报异常。不知道怎么办哦?怎样写这样一个语句,就是判断表中是否有字段department_id,如果有则drop,没有则add?
多谢!

解决方案 »

  1.   


    $conn = CApp::getDbConnection();
    $sql = "show columns from aos_service_hostname like '字段名'";接下来就是执行这个语句。查看执行结果。再根据结果进行下面的drop或add操作
    .
    .
    .$sql = "ALTER TABLE aos_service_hostname ADD department_id int(11);";
    $cmd = $conn->createCommand($sql);
    $cmd->execute();
    想写一个完善的脚本,而现在假如表中已经存在department_id字段的话,就会报异常。不知道怎么办哦?怎样写这样一个语句,就是判断表中是否有字段department_id,如果有则drop,没有则add?
    多谢!
    [/Quote]
      

  2.   

    select count(*) from information_schema.columns where table_schema='库名' and table_name='表名' and column_name='列名'然后对上面的结果进行判断来处理即可
      

  3.   

    [/Quote]返回的有问题俄?
    print_r一下返回数据,根本什么都没有这是怎么回事呢?
    $conn = CApp::getDbConnection();
     
         21             $sql = "show columns from aos_service_hostname";
         22             $cmd = $conn->createCommand($sql);
         26             $x = $cmd->query();
         27             print_r($x);TDbDataReader Object ( [_statement:private] => PDOStatement Object ( [queryString] => show columns from aos_service_hostname ) [_closed:private] => [_row:private] => [_index:private] => -1 [_e:private] => Array ( ) )