2017-02-12 19 views
0

mysqlで関数のインクリメントを1ずつ増やそうとしていますが、0から1まで1回しか機能しません。私はこれを行うために(int)を追加する必要があることに気がついたので、データ型と何か関係があると思います。何かヒントはありますか?codeigniterコントローラから++でmysqlの値を増やす

$mod_seq = $this->db2->query("select mod_sequence from tbl_release_info where release_id = '$release_id';"); 
$current_modsequence = (int)$mod_seq++; 

$update_query_release_info = "update tbl_release_info set mod_sequence = '$current_modsequence' where release_id = '$rid'; 

答えて

0

質問のクエリは、mod_sequenceから必要な値ではなく、行数を返します。代わりにこれを試してみてください:

$query = $this->db2->query("select mod_sequence from tbl_release_info where release_id = '$release_id';"); 

$row = $query->row(); 
    if (isset($row)) { 
    $mod_seq = $row->mod_sequence; 
    } 
$mod_seq++; 
$update_query_release_info = "update tbl_release_info set mod_sequence = '$mod_seq' where release_id = '$rid'; 

をmod_sequenceのデータ型が整数でない場合は、タイプは、それをキャスト:

$mod_seq = intval($row->mod_sequence); 

EDIT:

$mod_seq = (int)$row->mod_sequence; 

またはこのような

は@RiggsFolly最も釘付けエレガントなソリューションを提供します:-) https://stackoverflow.com/a/42194758/1363190

1

jusでこれを行うことができますSQLとこのような単一のクエリで

$this->db2->query("update tbl_release_info 
        set mod_sequence = mod_sequence + 1 
        where release_id = '$rid'"); 
+0

明らかに最も簡単で最高のソリューションです... –

+0

グレート解決策!ありがとう! – mgeezy

関連する問題