正常处理mysql_XXXX默认链接标识符参数

时间:2011-03-26 15:33:33

标签: php mysql arguments

mysql扩展函数接受可选的link参数,如果没有指定,则使用mysql_connect调用的最后一个返回值。我想在更高级别的函数中使用相同的行为,但不知道如何实现它。下面是我不想使用的丑陋的例子,绝对:

function get_mysql_info($linkid = null){
    $linkid ? $strInfo = mysql_info($linkid) : $strInfo = mysql_info();
    // followed by multiple tortures by ereg calls even!

我看到可能(或可能不)的两种可能方式:

  1. passthru一些真正的空值(NULL不符合条件,函数正在抱怨)降低级别并使mysql函数认为没有链接参数并使用最后记住的资源
  2. 检索最后记住的资源并明确地采用默认方式
  3. 这两种变体都没有成功,请指教,谢谢!


    请原谅重复,这是伪代码试图进一步解释我想要的东西:

    function mysql_wrap ( $optional_link_identifier ) {
      mysql_this( $optional_link_identifier ); // use specified link or default (as described above)
      mysql_that( $mandatory_parameter, $optional_link_identifier ); // use specified link or default 
      // so on
    }
    

    ...而不是在存在/不存在可选参数时进行分支:

    function mysql_wrap ( $optional_link_identifier = NULL ) {
      if ( $optional_link_identifier ) 
        mysql_this( $optional_link_identifier ); // use specified link 
      else mysql_this(); // or default 
      if ( $optional_link_identifier ) 
        mysql_that( $mandatory_parameter, $optional_link_identifier ); // use specified link 
      else mysql_that(); // or default 
      // so on. as you see, generalizing the code in the function actually made things even worse
    }
    

    所以,我正在寻求普遍处理这两种情况的方法。

1 个答案:

答案 0 :(得分:-1)

mysql_ *函数已经过了一天。

使用PDO,您将获得完全OOP接口,该接口在很大程度上与所使用的DB服务器类型无关。