在一瞬间使用INSERT和SELECT时返回唯一ID

i am writing a program using mvc , and because the program i am writing is for admitting bank transactions, the resaults this program gives me is very important to me. and i need this to work without any logical errors and everything should workout with needed focus and giving me the exact thing i expect it to give. the thing that i want it to do for me is that some information will be sent out to the program with web service (like price, info, etc...) and then using a controller it checks the information and calls for the module, and sends the information to it. the it puts the module information to a stdclass and then using the PDO module it creates a transaction. and while the transaction is at work an insert command is sent for the database, and then we have a SELECT command and the program works well even after the insert command but while SELECT is at work , we have repetitive IDs which is the problem here:

my code:

//WSDL Creattor And Class
<?php
ini_set("soap.wsdl_cache_enabled", 1);
set_time_limit(300);

class wsdl extends Controller
{
public function index()
{


  if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
        $servidorSoap = new SoapServer('http://' . $_SERVER['SERVER_NAME'] . '/wsdl');
        $servidorSoap->setClass('wsdl');
        $servidorSoap->handle();
                }
}

public function request($pin = null, $amount = 1, $callback = null, $orderid = null, $desc = null)
{
    if(empty($callback))
        return -10; // call back is empty.

    if (empty($pin) && $result->pin != $pin)
        return -1; // pin invalid


    $this->Model("payment");

   $au = $this->mod->Request($result, $amount, $callback, $orderid, $desc);

  return $au;


}
}

payment model:

<?php
class Payment_mod extends Model
{
public function Request($gateway, $amount, $callback, $orderid,   $description)
{
// using pdo module
    $this->DB->CONNECT->beginTransaction();
    try {
        $trans = new stdClass;
        $trans->gateway_id = $gateway->id;
        $trans->au = str_replace('.', '_temp_', microtime(true)); 
        $trans->price = $amount;
        $trans->order_id = $orderid;
        $trans->ip = $_SERVER['REMOTE_ADDR'];
        $trans->time = time();
        $trans->call_back = $callback;
        $trans->description = $description;
        $this->DB->Insert("trans", $trans); // insert into table trans …
        $id = $this->DB->Fetch("trans", "`gateway_id` =" . $trans->gateway_id . " AND `price`=".$trans->price." AND time = " . $trans->time)->id; // select id from trans where …
        $u = new stdClass;
        $u->t_id = $id;
        $this->DB->Insert("test",$u); // insert into test . it for test table for check result
        $this->DB->CONNECT->commit();
    } catch (Exception $e) {
        $this->DB->CONNECT->rollBack();
                    return -9; // return unknow error.
    }
   return $id;
}
}

for understanding where the problem exactly is and how many times each ID repeats itself, i added a table and i got the amount of return data of SELECT and put it into the database. and when i hold the f5 key for some seconds it shows that each ID repeats nearly 9 times.

screenshot: http://uploads.im/biWEn.jpg note: this picture shows the amount of repeat of IDs.

where is the problem? i need this to repeat a specific ID for each call. i did the exact thing in YII framework and i had no problem there and the progam worked exactly as i needed it to. i'd be glad if you help me.