有沒有辦法讓一個PDO連接的唯一連接標識到mysql?獲取PDO連接ID
5
A
回答
11
試試這樣。
print_r($dbh->query('SELECT CONNECTION_ID()')->fetch(PDO::FETCH_ASSOC));
您可以使用常規查詢來執行CONNECTION_ID()mysql命令來獲取連接ID。
-1
/* Define Data */
define("DB_HOST","localhost");
define("DB_NAME","DB_NAME");
define("DB_USERNAME","DB_USERNAME");
define("DB_PASSWORD","DB_PASSWORD");
define("DB_CHARSET","utf8");
class conn_db
{
private static $main_var = NULL;
function __construct()
{
$this->db_host=DB_HOST;
$this->db_name=DB_NAME;
$this->db_username=DB_USERNAME;
$this->db_pass=DB_PASSWORD;
if (!self::$main_var)
{
self::$main_var= new PDO("mysql:host=".$this->db_host.";dbname=". $this->db_name.";charset=".DB_CHARSET."", $this->db_username, $this->db_pass);
self::$main_var->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);
self::$main_var->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return self::$main_var;
}
/*fetch results*/
public static function get_results($getquery,$param=NULL,$type=NULL)
{
try
{
$PDO_connect=self::$main_var;
$data_query=$PDO_connect->prepare($getquery);
if($param!=NULL)
{
foreach($param as $param_name => &$param_value)
{
$data_query->bindParam(':'.$param_name, $param_value);
}
}
$data_query->execute();
if($type==NULL)
{
$fetch_type=PDO::FETCH_OBJ;
}
if($type=="_A")
{
$fetch_type=PDO::FETCH_ASSOC;
}
$fetch_data=$data_query->fetchAll($fetch_type);
return $fetch_data;
}
catch(PDOException $Exc) {
echo $Exc->getMessage();
die();
return FALSE;
}
}
/*action results such like insert , update,delete and alter
return value last insert row id
*/
public static function query($getquery,$param=NULL)
{
try
{
$PDO_connect=self::$main_var;
$data_query=$PDO_connect->prepare($getquery);
/*for insertion*/
if (strpos(strtolower($getquery),'insert') !== false)
{
$data_query->execute($param);
return $PDO_connect->lastInsertId();
}
/*for update,delete,etc*/
else{
if($param!=NULL)
{
foreach($param as $param_name => &$param_value)
{
$data_query->bindParam(':'.$param_name, $param_value);
}
}
$data_query->execute();
return $data_query;
}
}
catch(PDOException $Exc) {
echo $Exc->getMessage();
die();
return FALSE;} }
}
$GLOBALS['conn_db']=new conn_db();
+1
只是想法:對於閱讀你的答案的其他人來說是否有用,解釋爲什麼它提供了一個唯一的連接標識,而不是可以通過其他連接進行檢查,這是什麼要求? (我不downvote) – 2017-03-24 15:31:16
+0
代碼只有答案是不鼓勵的。另外,你的縮進怎麼了,* geeeshk *! – 2017-03-24 15:42:25
相關問題
- 1. 從ServerSocket獲取連接ID
- 2. Drupal 7,獲取PDO連接句柄?
- 3. PDO連接異常捕獲
- 4. PDO連接 - 最大連接
- 5. igraph獲取連接組件的ID
- 6. 如何獲取連接對等的ID?
- 7. 使用BrainSocket爲Laravel獲取連接ID
- 8. PDO:連接到
- 9. PHP PDO連接
- 10. 獲取最後一個ID PDO
- 11. 獲取PDO中更新的行的ID
- 12. PDO連接嘗試捕獲包括
- 13. PHP PDO捕獲連接異常
- 14. 銷燬PDO連接?
- 15. Cassandra PDO連接PHP
- 16. PDO連接不類
- 17. PDO關閉連接
- 18. PDO連接失敗
- 19. PHP PDO SQLite連接
- 20. PDO連接測試
- 21. 使用PDO連接
- 22. PDO連接登錄
- 23. PHP PDO ODBC連接
- 24. PDO PHP Oracle連接
- 25. PDO連接錯誤
- 26. 從現有連接獲取當前PDO驅動程序?
- 27. PHP/PDO:如何獲取當前連接狀態
- 28. 創建數據庫連接類(PDO)並獲取數據
- 29. 如何從PDO對象獲取連接資源?
- 30. 作爲連接的結果獲取PHP MySQL PDO列表名稱
你怎麼想這個ID怎麼辦?比如:比較對象?在MySQL通用查詢日誌中查找相關條目?實現某種連接池? ...? – VolkerK 2010-08-26 09:08:33