Estoy apenas comenzando a implementar las funciones de mysqli, ya que como se sabe estan declaradas obsoletas las funciones de mysql. Hasta cierto punto todo estaba muy bien pero cuando llego el momento de utilizar un metodo que creé para obtener el ultimo id insertado me arroja cero; he intentado solucionarlo de mil maneras pero sigo con el mismo problema.
Si alguien puede ayudarme se los agradezco, es que tengo poco tiempo para entregar la aplicacion y esto me tiene atrazado.
Aca les dejo el codigo.
Ahhh por cierto la aplicacion espara carga de cv, creo el usuario y necesito el último id de usuario ingresado para el resto de la información que se requiere.
Codigo
Clase base de datos
Código PHP:
Ver original
<?php abstract class AppDataBaseModel{ private static $THE_HOST = _APP_HOST_NAME_; private static $THE_USER = _APP_HOST_USER_; private static $THE_PASSWORD = _APP_HOST_PASSWORD_; private static $THE_DATABASE = _APP_HOST_DATABASE_; private $dbConnection; private $lastID; protected function openConnection(){ $this->dbConnection = @new mysqli(self::$THE_HOST, self::$THE_USER, self::$THE_PASSWORD, self::$THE_DATABASE); echo'Ha ocurrido un error al conectar con el servidor..!'; } } private function closeConnection(){ $this->dbConnection->close(); //$this->dbConnection->free(); } protected function executeQuery($mysqlQuery){ $this->openConnection(); $queryResult = $this->dbConnection->query($mysqlQuery); if(!$queryResult){ echo'Ha ocurrido un error al ejecutarse la consulta a la base de datos..!'.$this->dbConnection->error; }else{ return $queryResult; } $this->closeConnection(); } protected function countRows($mysqliQueryResult){ $this->openConnection(); $queryResult = $mysqliQueryResult->num_rows; if($queryResult){ return $queryResult; }else{ echo'Ha ocurrido un error al contar los registros de la tabla..!'; } $this->closeConnection(); } protected function getLastID($theTable,$theId){ $this->openConnection(); $this->lastID = ''.$theId.''; $queryResult = $this->executeQuery("SELECT LAST_INSERT_ID() AS ".$this->lastID." FROM ".$theTable.";"); if($queryResult){ return $queryResult; }else{ echo 'Ha ocurrido un error al intentar buscar el ultimo id insertado..!'.$this->dbConnection->error; } //$this->closeConnection(); } protected function escapeSqlString($fieldName){ $this->openConnection(); $queryResult = $this->dbConnection->real_escape_string($fieldName); if($queryResult){ return $queryResult; }else{ echo $this->dbConnection->error; } $this->closeConnection(); } protected function mysqliFetchObject($param){ $this->openConnection(); $queryResult = $param->fetch_object(); return $queryResult; } protected function mysqliFetchAssoc($param){ $this->openConnection(); $getResult = $param->fetch_assoc(); return $getResult; } LENGUAJE EN CASO DE QUE CAMBIE EN EL FUTURO protected function mysqliFetchArray($param){ $this->openConnection(); $getResult = $param->fetch_array(); return $getResult; } } ?>
Clase que maneja la información información del usuario
Código PHP:
Ver original
<?php class UserPersonalInfo extends AppDataBaseModel{ private $cinfoId; private $infoUserId; private $userInfoRif; private $userInfoPassport; private $userInfoMaritalStatus; private $userInfoBirthdate; private $userInfoAge; private $userInfoLicenseType; private $userInfoState; private $userInfoCity; private $userInfoAddress; private $userInfoCountryCode; private $userInfoStateCode; private $userInfoPhoneNumber; private $userInfoCountryCode2; private $userInfoStateCode2; private $userInfoPhoneNumber2; private $tableName = _TABLE_USERS_INFO_; private $tableName2 = _TABLE_USERS_; private $tableName3 = _TABLE_USERS_LEVEL_ACCESS_; private $theId ='i_users_personal_info_id'; private $userId ="u_user_id"; private $theUserId ='i_users_personal_info_user_id'; private $orderBy ='i_users_personal_info_id'; public function __construct($infoId=0,$infoUserId=0,$userInfoRif="",$userInfoPassport="",$userInfoMaritalStatus="",$userInfoBirthdate="",$userInfoAge="",$userInfoLicenseType="",$userInfoState="",$userInfoCity="",$userInfoAddress="",$userInfoCountryCode="",$userInfoStateCode="",$userInfoPhoneNumber="",$userInfoCountryCode2="",$userInfoStateCode2="",$userInfoPhoneNumber2=""){ $this->infoId = $infoId; $this->infoUserId = $infoUserId; $this->userInfoRif = $userInfoRif; $this->userInfoPassport = $userInfoPassport; $this->userInfoMaritalStatus = $userInfoMaritalStatus; $this->userInfoBirthdate = $userInfoBirthdate; $this->userInfoAge = $userInfoAge; $this->userInfoLicenseType = $userInfoLicenseType; $this->userInfoState = $userInfoState; $this->userInfoCity = $userInfoCity; $this->userInfoAddress = $userInfoAddress; $this->userInfoCountryCode = $userInfoCountryCode; $this->userInfoStateCode = $userInfoStateCode; $this->userInfoPhoneNumber = $userInfoPhoneNumber; $this->userInfoCountryCode2 = $userInfoCountryCode2; $this->userInfoStateCode2 = $userInfoStateCode2; $this->userInfoPhoneNumber2 = $userInfoPhoneNumber2; }//FIN DEL CONSTRUCTOR public function save(){ //AQUI ES DONDE LLAMO EL METODO GENERICO DE LA CLASE BASE DE DATOS PARA OBTENER EL ULTIMO ID $resultQuery = $this->getLastID($this->tableName2,$this->userId); $last_user_id = $this->mysqliFetchObject($resultQuery); $this->userId = $last_user_id->u_user_id; //LE COLOCO ESTE ECHO PARA VER SI ERROJA CERO O EL ID echo '<H1>ID - </H1>'.$this->userId; $getResult = $this->executeQuery("INSERT INTO ".$this->tableName."(i_users_personal_info_id, i_users_personal_info_user_id, i_users_personal_info_rif, i_users_personal_info_passport, i_users_personal_info_marital_status, i_users_personal_info_birthdate, i_users_personal_info_age, i_users_personal_info_driving_license_type, i_users_personal_info_state, i_users_personal_info_city, i_users_personal_info_address, i_users_personal_info_phone_country_code, i_users_personal_info_phone_state_code, i_users_personal_info_phone_number, i_users_personal_info_phone_country_code2, i_users_personal_info_phone_state_code2, i_users_personal_info_phone_number2) VALUES ('', '".$this->escapeSqlString($this->userId)."', '".$this->escapeSqlString($this->userInfoRif)."', '".$this->escapeSqlString($this->userInfoPassport)."', '".$this->escapeSqlString($this->userInfoMaritalStatus)."', '".$this->escapeSqlString($this->userInfoBirthdate)."', '".$this->escapeSqlString($this->userInfoAge)."', '".$this->escapeSqlString($this->userInfoLicenseType)."', '".$this->escapeSqlString($this->userInfoState)."', '".$this->escapeSqlString($this->userInfoCity)."', '".$this->escapeSqlString($this->userInfoAddress)."', '".$this->escapeSqlString($this->userInfoCountryCode)."', '".$this->escapeSqlString($this->userInfoStateCode)."', '".$this->escapeSqlString($this->userInfoPhoneNumber)."', '".$this->escapeSqlString($this->userInfoCountryCode2)."', '".$this->escapeSqlString($this->userInfoStateCode2)."', '".$this->escapeSqlString($this->userInfoPhoneNumber2)."');"); return $getResult; }//FIN DEL METODO SAVE }//FIN DE LA CLASE ?>