2014-04-11 5 views
0

와 자동 실행 업데이트 필드 나는이ADODB, 필드

id | firstname | lastname 
========================== 
1 | Ujang  | ahmad 
2 | Jajat  | sudrajat 

같은 테이블 "사용자"가 데이터가이 같은

$record = array('firstname'=>'some value', 'lastname'=>'some value'); 
$table = "users"; 

및 프로세스 업데이트 :

$exc= $conn->AutoExecute($table, $record, 'UPDATE', 'id = 1'); 

방법 lastname을 사용하여 필드 이름을 업데이트합니까? AutoExecute

그래서 그 결과 다음과 같이 얻을 : 내가 당신을 오해하지 않는 한

id | firstname | lastname 
========================== 
1 | ahmad  | Ujang 
2 | sudrajat | Jajat 

답변

0

는 자동 실행은 작업에 잘 보이지 않는다. 테이블의 모든 레코드를 한 번 변환해야 할 경우 열의 이름을 바꿉니다.

ALTER TABLE `users` 
CHANGE COLUMN `lastname` `firstname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `id`, 
CHANGE COLUMN `firstname` `lastname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `firstname`; 

또는 PHP/ADODB에서

:

$sql = "ALTER TABLE `users` 
    CHANGE COLUMN `lastname` `firstname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `id`, 
    CHANGE COLUMN `firstname` `lastname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `firstname`;"; 
if (($result = $conn->Execute($sql)) === false) 
    exit($sql.'<br />'.$conn->errorMsg()); 

특정 기록을 목표로해야 할 경우 임시 변수를 사용할 수 있습니다.

$sql = "UPDATE users 
    SET firstname=(@temp:=firstname), firstname = lastname, lastname = @temp 
    WHERE id=2"; 
if (($result = $conn->Execute($sql)) === false) 
    exit($sql.'<br />'.$conn->errorMsg()); 

건배