Re: How can I get MySQL protocol information with PDO?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





O/H Kazuhiro IIzuka ??????:
Thanks Thodoris.

But this is not things I desired.I've already read php manual and known about PDO::getAttribute() before I post my question.

When I get to server version,I can use $dbh->getAttribute(PDO::
ATTR_SERVER_VERSION),but there are no attribute about mysql server protocol.

I'm planing to make phpMyAdmin-clone with PDO.but I don't know PDO can work instead of mysql/mysqli extension.and I couldn't find equivalent function in PDO with mysql_get_proto_info(mysqli_get_proto_info).

// with mysql extension
$link = mysql_connect($host,$user,$password);
echo mysql_get_proto_info(); // returns 10 in my case.

but I cannot find the proper value like PDO::ATTR_SERVER_PROTOCOL in PDO's getAttribute.

and PDO doesn't seems to use MySQL API's mysql_get_proto_info.

I check like this:
/path/to/php-5.2.4/ext$ grep -r 'mysql_get_proto_info' mysql
mysql/php_mysql.c:      PHP_FE(mysql_get_proto_info,             NULL)
mysql/php_mysql.c:/* {{{ proto int mysql_get_proto_info([int link_identifier])
mysql/php_mysql.c:PHP_FUNCTION(mysql_get_proto_info)
mysql/php_mysql.c:      RETURN_LONG(mysql_get_proto_info(&mysql->conn));
mysql/php_mysql.h:PHP_FUNCTION(mysql_get_proto_info);
Binary file mysql/.libs/php_mysql.o matches
/path/to/php-5.2.4/ext$ grep -r 'mysql_get_proto_info' pdo*
/path/to/php-5.2.4/ext$

I forgot to tell you my environment.

MySQL version: 5.0.27-standard-log
PHP: 5.2.4 (upgrade in near future)
Apache: 2.2.6

You can retrieve some info for the mysql connection (server,driver etc) using PDO::getAttribute()

For e.g. you can do something like that:

<?php
  $dbhost = 'localhost';
  $dbuser = 'user_name';
  $dbpass = 'password';
  $db = 'database';

  $dbh= new PDO('mysql:host='.$dbhost.';dbname='.$db, $dbuser, $dbpass);

  echo $dbh->getAttribute(PDO::ATTR_DRIVER_NAME);
  echo "<br>";
  echo $dbh->getAttribute(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE);
  echo "<br>";
  echo $dbh->getAttribute(PDO::ATTR_SERVER_VERSION);
  echo "<br>";
  echo $dbh->getAttribute(PDO::ATTR_CONNECTION_STATUS);
?>



Well Kazuhiro you should know that PDO is not exactly an alternative for mysql/mysqli but it was supposed to abstract the database details under an object. This is not totally yet happening but I think that you can use PDO instead of mysql/mysqli in any case. Well I have wrote many projects using it, and I think that if I wished to change the database from mysql to some other it would take just few changes in my code.

You can always post this in the developers list if you want more details on the matter and find out if any protocol attributes are to be supported.
--
Thodoris

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux