前提・実現したいこと
CodeIgniterのバージョンを2.1から3.2にバージョンアップしました。
mysqlサーバーにmysqliで接続し、DBの検索処理等を行いたいです。
発生している問題・エラーメッセージ
modelsのTest_infoで$query->num_rowsがnullになります。
その後$insrt_arryの途中でTest_blogicのtry-catch文でエラーが捕捉されます。
$mysqli->connect_errorがnullになり、エラー内容がわからない状態です。
ERROR - 2020-10-12 10:35:27 --> Severity: Warning --> Test_blogic::_execute(): Property access is not allowed yet C:\develop\Test_project\application\models\Test_blogic.php 52 ERROR - 2020-10-12 10:35:27 --> Severity: Warning --> Test_blogic::_execute(): Couldn't fetch mysqli C:\develop\Test_project\application\models\Test_blogic.php 52
該当のソースコード
PHP
1//application/models/Test_info.php 2 3class Test_info extends Test_blogic 4{ 5 $this->db->where('eml_addrss',$eml_addrss); 6 $query = $this->db->get('test_info'); 7 if($query->num_rows == 0){ 8 9 $insrt_arry = array( 10 'entry_date' => $current_date, 11 'entry_time' => $current_time, 12 ); 13 } 14}
PHP
1//application/models/Test_blogic.php 2 3abstract class Test_blogic extends CI_Model 4{ 5 public function _execute($rqst) { 6 7 try { 8 9 $this->db->trans_start(); 10 11 $rslt = $this->execute($rqst); 12 13 } catch (Throwable $e) { 14 15 $mysqli = new mysqli('****', '****', '****', '****'); 16 17 //$mysqli->connect_errorはnullになります。 18 if ($mysqli->connect_error) { 19 ログ出力関数('WMCM0001', $mysqli->connect_error); 20 } 21 22 $db = $this->db; 23 if (isset($db)) { 24 25 $db->trans_rollback(); 26 $db->close(); 27 } 28 29 } finally { 30 31 $db = $this->db; 32 33 if (isset($db)) { 34 35 $db->trans_complete(); 36 $db->close(); 37 } 38 39 if (!isset($rslt)) { 40 41 $rslt = 処理; 42 43 } 44 45 return $rslt; 46 } 47 } 48}
PHP
1 2//application/config/database.php 3 4$active_group = 'default'; 5$query_builder = TRUE; 6 7$db['default'] = array( 8 'dsn' => '', 9 'hostname' => '***.**.**.***', 10 'username' => '****', 11 'password' => '****', 12 'database' => 'testdb', 13 'dbdriver' => 'mysqli', 14 'dbprefix' => '', 15 'pconnect' => TRUE, 16 'db_debug' => TRUE, 17 'cache_on' => FALSE, 18 'cachedir' => '', 19 'char_set' => 'utf8', 20 'dbcollat' => 'utf8_general_ci', 21 'swap_pre' => '', 22 'encrypt' => FALSE, 23 'compress' => FALSE, 24 'stricton' => FALSE, 25 'failover' => array(), 26 'save_queries' => TRUE 27);
PHP
1 2//application/config/autoload.php 3 4$autoload['libraries'] = array('database','user_agent','email'); 5
補足情報(FW/ツールのバージョンなど)
CodeIgniter 3.2
Xdebug
PHP 7.3.4
回答1件
あなたの回答
tips
プレビュー