2017-07-11 6 views
0

私は開発用のフレームワークとしてCodeIgniterを使用しました。 MySQLデータベースのテーブルにデータを挿入しようとしています。 データは次のように挿入されます。テーブルにデータを挿入すると、insertId 0が返されます。

$dataArray['categoryId'] = $categoryId['id']; 
$dataArray['subCategoryId'] = $subTypeId; 
$dataArray['title'] = $title; 
$dataArray['regionId'] = $regionId; 
$dataArray['slogan'] = $slogan; 
$dataArray['lastUpdated'] = date('Y-m-d H:i:s'); 
$dataArray['createdDate'] = date('Y-m-d H:i:s'); 
$dataArray['state'] = 'Unhide'; 
$dataArray['status'] = 'Active'; 
$dataArray['approval'] = 'Incompleted'; 
$dataArray['user_id'] = $userId; 
$this->db->insert($carrentals, $dataArray); 
$insertId = $this->db->insert_id(); 

マイテーブルは、添付されたイメージのように構成されています。 enter image description here

$ insertIdは常に0を返し、データはテーブルに挿入されません。 テーブルに手動でデータを挿入できます。 何が間違っている可能性がありますか? 私はidとしてAUTO_INCREMENT列を持っています。しかし、データが挿入されていないと常に0

EDIT返します 私の実際のコードは

$dataArray = [ 
      'categoryId' => $categoryId['id'], 
      'subCategoryId' => $subTypeId, 
      'title' => $title, 
      'regionId' => $regionId, 
      'slogan' => $slogan, 
      'lastUpdated' =>date('Y-m-d H:i:s') 
     ]; 
if (empty($_POST['referenceId'])) { 
       $dataArray['createdDate'] = date('Y-m-d H:i:s'); 
       $dataArray['state'] = 'Unhide'; 
       $dataArray['status'] = 'Active'; 
       $dataArray['approval'] = 'Incompleted'; 
       $dataArray['user_id'] = $userId; 
       $this->db->insert($carrentals, $dataArray); 
       $insertId = $this->db->insert_id();     
       $responseArray = array(
        'result' => $insertId, 
        'success' => true); 
       return $this->set_response($responseArray, REST_Controller::HTTP_OK); 
    } 
+0

テーブル名と列を再確認してみてください。 '$ this-> db-> last_query();'を表示して、クエリが正しいかどうかを調べることができます。 –

答えて

1

のためにあなたの$ dataArrayを交換してみてください。 TRUEまたはFALSE insert()戻ると、私はあなたが$dataArrayを作成する方法に問題が表示されていない

$inserted = $this->db->insert($carrentals, $dataArray); 
if($inserted) 
{ 
    $responseArray = ['result' => $insertId, 'success' => true]; 
} 
else 
{ 
    $responseArray = ['result' => NULL, 'success' => false]; 
} 

return $this->set_response($responseArray, REST_Controller::HTTP_OK); 

を進める前に、結果を確認してください。

+0

はい、それはゼロではありませんでした。テーブルが作成され、次に挿入できない理由がわかりません。この問題は、同様のテーブルをクローンすることによって解決されました。私はクローン化したテーブルと同じになるように作成しようとしました。しかし挿入することはできません。 – batuman

0

ではおそらくゼロFALSEない返す

$dataArray = array('categoryId' => $categoryId['id'], 
        'subCategoryId' => $subTypeId, 
        'title' => $title, 
        'regionId' => $regionId, 
        'slogan' => $slogan, 
        'lastUpdated' => date('Y-m-d H:i:s'), 
        'createdDate' => date('Y-m-d H:i:s'), 
        'state' => 'Unhide', 
        'status' => 'Active', 
        'approval' => 'Incompleted', 
        'user_id' => $userId 
       ); 
$this->db->insert($carrentals, $dataArray); 
$insertId = $this->db->insert_id(); 
+0

まだ同じです。実際のコードはEDITに示されているとおりです。 – batuman

関連する問題