Welcome Guest, Not a member yet? Register   Sign In
How can I use transactions with these queries?
#3

(04-16-2018, 04:18 AM)InsiteFX Wrote: See: The CodeIgniter User's Guide

Running Transactions Manually


How does this look?

PHP Code:
defined('BASEPATH') OR exit('No direct script access allowed');

class 
Data_receiver extends CI_Controller {

 public function 
__construct()
 {
 
parent::__construct();
 }

 public function 
index()
 {
$this->db->trans_begin();
 
//Validate Account Owner
 
$sql "SELECT * FROM launch_owners WHERE id = ?";
 
$query $this->db->query($sql, array($_POST['user_id']));
 if(
$query->num_rows()!=1)
 {
 echo 
"Invalid Request";exit();
 }
 else
 {
 
$results $query->result_array()[0]; 
 
//More Validate Account Owner
 
if($results['status']!='active' || $results['secret_key']!=$_POST['secret_key'])
 {
 echo 
"Inactive Account Or Invalid Secret";exit();
 }
 else 
 {
 
//Validate Launch
 
$sql "SELECT * FROM launch_launches WHERE id = ? AND launch_type = ?";
 
$query $this->db->query($sql, array($_POST['launch_id'], 'evergreen'));
 if(
$query->num_rows()==1)
 {
 
//Does Prospect exist under this user?
 
$sql "SELECT * FROM launch_prospects WHERE email = ? AND owner_id = ?";
 
$query $this->db->query($sql, array($_POST['prospect_email'], $_POST['user_id']));
 if(
$query->num_rows()==1)
 {
 
$prospect_id $query->result_array()[0]['id'];
 }
 else 
 {
 
$data = array(
 
       'email' => $_POST['prospect_email'],
 
       'owner_id' => $_POST['user_id'],
 );
 
$this->db->insert('launch_prospects'$data);
 
$prospect_id $this->db->insert_id();
 }
 
//Delete prospect from this launch if already exist in the seqeunce
 
$this->db->delete('launch_launch_prospect', array('launch_id' => $_POST['launch_id'], 'prospect_id'=>$prospect_id)); 
 
//Add Prospect To Launch
 
$data = array(
 
       'launch_id' => $_POST['launch_id'],
 
       'prospect_id' => $prospect_id,
 
       'time_added' => time(),
 
       'date_added' => date('Y-m-d')
 );
 
$this->db->insert('launch_launch_prospect'$data);

 
//Insert the same into stats table
 
$data = array(
 
       'launch_id' => $_POST['launch_id'],
 
       'prospect_id' => $prospect_id,
 
       'time_added' => time(),
 
       'date_added' => date('Y-m-d')
 );
 
$this->db->insert('launch_launch_prospect_history'$data);
 echo 
"Added Successfully";
 }
 else 
 {
 echo 
"Invalid launch";exit();
 } 
 } 

if (
$this->db->trans_status() === FALSE)
{
 
       $this->db->trans_rollback();
}
else
{
 
       $this->db->trans_commit();
}
 } 





 }

Reply


Messages In This Thread
RE: How can I use transactions with these queries? - by behnampmdg3 - 04-16-2018, 07:53 AM



Theme © iAndrew 2016 - Forum software by © MyBB