PHP头条
热点:

版本控制

Drizzle扩展还带有许多能提供与当前Drizzle客户端、服务器以及协议的版本有关的信息的函数。把它与Drizzle的information_schema数据库里的信息结合起来可以让我们更清楚地看到Drizzle服务器内部到底是如何运作的。下面有一个示例:

  1. < html> 
  2.   < head> 
  3.     < style type="text/css"> 
  4.     table,tr,td {  
  5.       border: solid 1px black;  
  6.       border-collapse: collapse;  
  7.       padding: 5px;  
  8.     }  
  9.     < /style> 
  10.   < /head> 
  11.   < body> 
  12.     < h2>Databases and Tables< /h2>      
  13.     < ?php  
  14.     // set connection parameters  
  15.     $host = 'localhost';  
  16.     $port = 4427;  
  17.     $user = 'root';  
  18.     $pass = 'guessme';  
  19.     $db = 'information_schema';  
  20.     
  21.     // create drizzle object  
  22.     $drizzle = new drizzle();  
  23.     
  24.     // connect to database server  
  25.     $conn = $drizzle->addTcp($host, $port, $user, $pass, $db, 0)  
  26.       or die('ERROR: ' . $drizzle->error());  
  27.       
  28.     // get database list  
  29.     $sql = 'SELECT SCHEMA_NAME FROM SCHEMATA';  
  30.     $result = @$conn->query($sql)  
  31.       or die('ERROR: ' . $conn->error());  
  32.     
  33.     // buffer result set  
  34.     $result->buffer()  
  35.      or die('ERROR: ' . $conn->error());  
  36.  
  37.     // print results    
  38.     if ($result->rowCount()) {  
  39.       while (($row = $result->rowNext())) {  
  40.         echo '< h3>' . $row[0] . '< /h3>';          
  41.         // get table list  
  42.         $sql2 = "SELECT TABLE_NAME, ENGINE, TABLE_ROWS FROM TABLES WHERE TABLE_SCHEMA='" . $row[0] . "'";  
  43.         $result2 = @$conn->query($sql2)  
  44.           or die('ERROR: ' . $conn->error());  
  45.             
  46.         // buffer result set  
  47.         $result2->buffer()  
  48.           or die('ERROR: ' . $conn->error());  
  49.             
  50.         // print results    
  51.         if ($result2->rowCount()) {  
  52.           echo '< table>';        
  53.           while (($row2 = $result2->rowNext())) {  
  54.             echo '< tr>';  
  55.             echo '< td>'. $row2[0] . '< /td>';  
  56.             echo '< td>'. $row2[1] . '< /td>';  
  57.             echo '< td>'. (int)$row2[2] . ' rows< /td>';              
  58.             echo '< /tr>';  
  59.           }  
  60.           echo '< /table>';        
  61.         }  
  62.       }  
  63.     } else {  
  64.       echo 'No records found';  
  65.     }  
  66.     ?> 
  67.       
  68.     < h2>Client and Server Information< /h2> 
  69.     < ?php  
  70.     // get version and host information  
  71.     echo "Client version: " . $drizzle->version() . "< br />";  
  72.     echo "Server version: " . $conn->serverVersion() . "< br />";  
  73.     echo "Protocol version: " . $conn->protocolVersion() . "< br />";  
  74.     ?>      
  75.       
  76.     < h2>Server Status< /h2> 
  77.     < ?php  
  78.     // get global variables  
  79.     $sql3 = 'SELECT * FROM GLOBAL_STATUS';  
  80.     $result3 = @$conn->query($sql3)  
  81.       or die('ERROR: ' . $conn->error());  
  82.     
  83.     // buffer result set  
  84.     $result3->buffer()  
  85.       or die('ERROR: ' . $conn->error());  
  86.       
  87.     // print results    
  88.     if ($result3->rowCount()) {  
  89.       echo '< table>';        
  90.       while (($row3 = $result3->rowNext())) {  
  91.         echo '< tr>';  
  92.         echo '< td>'. $row3[0] . '< /td>';  
  93.         echo '< td>'. $row3[1] . '< /td>';  
  94.         echo '< /tr>';  
  95.       }  
  96.       echo '< /table>';        
  97.     }  
  98.     
  99.     // close connection  
  100.     $conn->close();  
  101.     
  102.     // deinitialize object  
  103.     unset($drizzle);  
  104.     ?> 
  105.  
  106.   < /body> 
  107. < /html> 

这段脚本通过查询information_schema这个特殊的数据库来获取这台服务器上的数据库和表的信息,此外还可以获取到全局状态变量的值,比如服务器的运行时间、连接的线程数量、已开打的表格数等。它还示范了version(),serverVersion(),以及protocolVersion()方法,它们分别返回Drizzle客户端、服务器和协议的版本号。

下面是这段代码的一些输出截图:

版本控制输出截图1 

版本控制输出截图2 

Drizzle 扩展还提供了许多能帮你处理连接错误、查询错误的函数。drizzle_error()和drizzle_error_code()函数返回上一次数据库连接所产生的错误信息和错误代码,而drizzle_con_error()和drizzle_con_error_code()函数返回上一次查询所产生的的错误信息和错误代码。当然,这些函数也有相应的面向对象接口,你可以看看之前的例子看看它们是如何使用的。

我要介绍的内容就是这些了。在前面几页里,我介绍了Drizzle这个新兴的、轻量的、为云应用特别设计的MySQL分支,并演示了在PHP应用程序里使用它是多么简单的事情。虽然Drizzle PHP扩展更不用说Drizzle本身)还在开发阶段,但是它仍然已经提供了非常全面的API来执行查询语句、检查结果集、处理错误。有空的时候试试它吧,再与我分享一下你的使用感受!

原文:Getting Started with Drizzle and PHP

作者:Vikram Vaswani

  1. PHP实现的MySQL读写分离
  2. MySQL将采用新的开发和发布模式
  3. MySQL 5.1.35发布 针对Windows平台修复多项Bug
  4. MySQL数据库行将消亡?靠Oracle抢救或自救
  5. 四分五裂的MySQL能否重整山河?


www.phpzy.comtrue/php/17609.htmlTechArticle版本控制 Drizzle扩展还带有许多能提供与当前Drizzle客户端、服务器以及协议的版本有关的信息的函数。把它与Drizzle的information_schema数据库里的信息结合起...

相关文章

PHP之友评论

今天推荐