有没有办法让一个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. Drupal 7,获取PDO连接句柄?
- 2. 从ServerSocket获取连接ID
- 3. PDO连接 - 最大连接
- 4. 如何获取连接对等的ID?
- 5. 获取PDO中更新的行的ID
- 6. PHP PDO ODBC连接
- 7. PDO连接失败
- 8. PDO连接测试
- 9. PHP PDO SQLite连接
- 10. 从现有连接获取当前PDO驱动程序?
- 11. 作为连接的结果获取PHP MySQL PDO列表名称
- 12. PDO获取
- 13. PDO获取值
- 14. 如何获取连续表创建连接表的ID?
- 15. iOS获取连接
- 16. 错误的PDO SSL连接
- 17. PHP新PDO连接问题
- 18. PHP的PDO的SQLITE - 连接
- 19. PHP PDO连接失败
- 20. PHP PDO连接到SQLITE db
- 21. 问题与PDO连接
- 22. PDO两个表连接
- 23. php pdo连接范围
- 24. 无法连接与PDO PHP
- 25. 与连接表PDO FETCH_CLASS
- 26. Pdo Dblib Mssql连接错误
- 27. MySQL连接功能PDO
- 28. 获取链接ID的jQuery
- 29. 获取使用PDO
- 30. PHP PDO获取null
你怎么想这个ID怎么办?比如:比较对象?在MySQL通用查询日志中查找相关条目?实现某种连接池? ...? – VolkerK 2010-08-26 09:08:33