제목 | 혼자서 해결해보려고 했지만 도저히 안되서 여쭤보겠습니다. | ||
---|---|---|---|
글쓴이 | 일용직노동자 | 작성시각 | 2014/09/23 05:29:00 |
|
|||
예전에 CI + ODBC(mssql)을 사용하다가 create_user (tank_auth users modle method)에 date['created'] = date('y-m-d h:i:s'); 라는 구문이 있는데 mssql과 날짜형식이 안맞는다는 에러가 발생했습니다. 그래서 웅파님이 답변을 달아주셔서 그 형식대로 넣어봤습니다. function create_user($data, $activated = TRUE) { $data['created'] = array(); $date = array(); $this->db->select('GETDATE() AS CURRENTDATE'); $query = $this->db->get(); foreach ($query->result_array() as $row){ $date['dodo'] = Array ( "created" => $row['CURRENTDATE'] ); var_dump($date['dodo']); array_push($data['created'], $date['dodo']); var_dump($data['created']); } //$data['created'] = date('Y-m-d H:i:s'); //$query = $this->db->select('FROM ALERT WHERE (CONVERT('$data['created']', 126)', FALSE); //$data['created'] = $query; // $data['created'] = array(); // $date = array(); // $this->db->select('GETDATE() AS CURRENTDATE'); // $query = $this->db->get(); // foreach ($query->result_array() as $row){ // $date['dodo'] = Array ( // "created" => $row['CURRENTDATE'] // ); // var_dump($date['dodo']); // array_push($data['created'], $date['dodo']); // var_dump($data['created']); // } //$date = implode(" ",$getdate); //$data['created'] = $this->db->select('(SELECT CONVERT(varchar(30), GETDATE(), 121) FROM '.$table_name.''), FALSE); //$getdate = $this->db->query('SELECT GETDATE()'); //$data['created'] = $this->db->query('Select Replace(Convert(varchar(30),Getdate(),121),'-','/''))->result(); // foreach ($getdate->result_array() as $row) { // $date['date'] = array( // "created" => $row['created'] // ); // array_push($data['created'], $date); // } $data['activated'] = $activated ? 1 : 0; if ($this->db->insert($this->table_name, $data)) { $user_id = $this->db->insert_id(); if ($activated) $this->create_profile($user_id); return array('user_id' => $user_id); } return NULL; } 이 방법 저 방법하다가 결국엔 $data['created'] = array(); $date = array(); $this->db->select('GETDATE() AS CURRENTDATE'); $query = $this->db->get(); foreach ($query->result_array() as $row){ $date['dodo'] = Array ( "created" => $row['CURRENTDATE'] ); var_dump($date['dodo']); array_push($data['created'], $date['dodo']); var_dump($data['created']); } 이 방법을 택했습니다. SELECT GETDATE() AS CURENTDATE로 하여 CURRENTDATE항목으로 현재시간을 가져옵니다. 그 후에 row를 뽑아서 $date['dodo'] 배열에 created로 row 뽑아온 값을 집어넣었습니다. 그 후 array_push로 date['created']에 row값을 넣은 dodo를 푸쉬하였습니다. 그러면 될 줄알았는데 A PHP Error was encountered Severity: Notice Message: Array to string conversion Filename: odbc/odbc_driver.php Line Number: 514 Error Number: S0022 [Microsoft][SQL Server Native Client 11.0][SQL Server]열 이름 'Array'이(가) 잘못되었습니다. INSERT INTO users (username, password, email, last_ip, new_email_key, created, activated) VALUES ('test', '$2a$08$ELBD.I8dX3V1saZl.QrZHuG90dwVaWnHLLhoWCjcWzqdXzNg1dUGC', 'test', '125.7.174.76', 'bd35287e8631f80c2f1182806a46730f', Array, 0) Filename: C:\xampp\htdocs\mmac\system\database\DB_driver.php Line Number: 330 |
|||
다음글 | 파일 업로드 관련 질문입니다. (2) | ||
이전글 | form_validation 에 관해 질문 드립니다! (5) | ||
한대승(불의회상)
/
2014/09/23 09:28:44 /
추천
0
이렇게 해보세요.
|
일용직노동자
/
2014/09/23 13:28:23 /
추천
0
답변 감사드립니다.
이상하게도 분명 mssql 형식으로 들어가진 것 같습니다. var_dump로 찍어보니 2014-09-23 13:37:08.003로 형식에 맞게 잘나오구요. 그런데도 [Microsoft][SQL Server Native Client 11.0][SQL Server]문자열을 날짜 및/또는 시간으로 변환하지 못했습니다. 에러가 뜨네요 으.. 미치겠습니다 ㅠㅠ |
일용직노동자
/
2014/09/23 13:50:50 /
추천
0
string을 datetime형식으로 안바꿔줘서 이런 에러가 뜬거였네요 @_@ 으.. 너무어렵네요
|
일용직노동자
/
2014/09/23 13:53:50 /
추천
0
$now = $this->db->select('CONVERT(CHAR(19), GETDATE(), 120) AS now', FALSE)->get()->row()->now;
$data['created'] = $now; 이런식으로 변형해봤는데 어쨋든 결과론적으로 문자열로 받아오니 직접쿼리를 쓰지않는 이상 방법이 없나요 흠.. |
한대승(불의회상)
/
2014/09/23 14:33:07 /
추천
0
insert 할때나 update 할때 바꿔줘야 하지 않나요??
|
일용직노동자
/
2014/09/23 14:44:04 /
추천
0
아 그렇네요 다시 한번 해보겠습니다. 답변감사드립니다 ㅎㅎ
|