not a valid MySQL-Link resource

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Kurda Yon

    not a valid MySQL-Link resource

    Hi everybody,

    I cannot understand the following thinks. The last line of the
    fillowing code produces a message about mistake (not a valid MySQL-
    Link resource):

    $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    mysql_select_db ( $db_name, $link);
    $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    mysql_close( $link );
    mysql_select_db ( "sss", $link );

    It is clear why it is happens. Because I use $link to the database,
    which has been closed in the previouse line. To remove this problem I
    have to change the code in the following way:

    $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    mysql_select_db ( $db_name, $link);
    $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
    mysql_close( $link_new );
    mysql_select_db ( "sss", $link );

    Now I do the same but with the usage of a function. As it is expected,
    the following code produce the message about mistake:

    $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    mysql_select_db ( $db_name, $link);
    function fff()
    {
    $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    mysql_close( $link );
    }
    fff();
    mysql_select_db ( "sss", $link );

    But what is strange and what I cannot understand is why the previosly
    used solution does not work. The following code alse generate the same
    message!

    $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    mysql_select_db ( $db_name, $link);
    function fff()
    {
    $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
    mysql_close( $link_new );
    }
    fff();
    mysql_select_db ( "sss", $link );

    Thanks.

  • Steve

    #2
    Re: not a valid MySQL-Link resource


    "Kurda Yon" <kurdayon@yahoo .comwrote in message
    news:1177613411 .140647.31800@n 35g2000prd.goog legroups.com...
    | Hi everybody,
    |
    | I cannot understand the following thinks. The last line of the
    | fillowing code produces a message about mistake (not a valid MySQL-
    | Link resource):
    |
    | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    | mysql_select_db ( $db_name, $link);
    | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    | mysql_close( $link );
    | mysql_select_db ( "sss", $link );
    |
    | It is clear why it is happens. Because I use $link to the database,
    | which has been closed in the previouse line. To remove this problem I
    | have to change the code in the following way:
    |
    | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    | mysql_select_db ( $db_name, $link);
    | $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
    | mysql_close( $link_new );
    | mysql_select_db ( "sss", $link );
    |
    | Now I do the same but with the usage of a function. As it is expected,
    | the following code produce the message about mistake:
    |
    | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    | mysql_select_db ( $db_name, $link);
    | function fff()
    | {
    | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    | mysql_close( $link );
    | }
    | fff();
    | mysql_select_db ( "sss", $link );
    |
    | But what is strange and what I cannot understand is why the previosly
    | used solution does not work. The following code alse generate the same
    | message!
    |
    | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
    | mysql_select_db ( $db_name, $link);
    | function fff()
    | {
    | $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
    | mysql_close( $link_new );
    | }
    | fff();
    | mysql_select_db ( "sss", $link );

    hard to understand you.

    is this your *real* code? you realize that $link INSIDE the function is not
    $link OUTSIDE your function, right? why are you worrying about closing the
    connection anyway? the connection is dropped after the script is run/exited.


    Comment

    • Kurda Yon

      #3
      Re: not a valid MySQL-Link resource

      On Apr 26, 9:20 pm, "Steve" <no....@example .comwrote:
      "Kurda Yon" <kurda...@yahoo .comwrote in message
      >
      news:1177613411 .140647.31800@n 35g2000prd.goog legroups.com...
      | Hi everybody,
      |
      | I cannot understand the following thinks. The last line of the
      | fillowing code produces a message about mistake (not a valid MySQL-
      | Link resource):
      |
      | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
      | mysql_select_db ( $db_name, $link);
      | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
      | mysql_close( $link );
      | mysql_select_db ( "sss", $link );
      |
      | It is clear why it is happens. Because I use $link to the database,
      | which has been closed in the previouse line. To remove this problem I
      | have to change the code in the following way:
      |
      | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
      | mysql_select_db ( $db_name, $link);
      | $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
      | mysql_close( $link_new );
      | mysql_select_db ( "sss", $link );
      |
      | Now I do the same but with the usage of a function. As it is expected,
      | the following code produce the message about mistake:
      |
      | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
      | mysql_select_db ( $db_name, $link);
      | function fff()
      | {
      | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
      | mysql_close( $link );
      | }
      | fff();
      | mysql_select_db ( "sss", $link );
      |
      | But what is strange and what I cannot understand is why the previosly
      | used solution does not work. The following code alse generate the same
      | message!
      |
      | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
      | mysql_select_db ( $db_name, $link);
      | function fff()
      | {
      | $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
      | mysql_close( $link_new );
      | }
      | fff();
      | mysql_select_db ( "sss", $link );
      >
      hard to understand you.
      >
      is this your *real* code? you realize that $link INSIDE the function is not
      $link OUTSIDE your function, right? why are you worrying about closing the
      connection anyway? the connection is dropped after the script is run/exited.
      Sorry, may be I explained it in a bad way. The problem is that the
      following code produce a message about mistake:

      $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
      mysql_select_db ( $db_name, $link);
      function fff()
      {
      $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
      mysql_close( $link_new );
      }
      fff();
      mysql_select_db ( "sss", $link );

      Or more precisely the last line causes the following message:
      Warning: mysql_select_db (): 2 is not a valid MySQL-Link resource

      And it happens only if I execute the fff() function before. I suppose
      that origin of the problem is that I close connection to the database
      in the function. But I do not understand why. I do give another name
      to the connection.


      Comment

      • Schraalhans Keukenmeester

        #4
        Re: not a valid MySQL-Link resource

        Kurda Yon wrote:
        On Apr 26, 9:20 pm, "Steve" <no....@example .comwrote:
        >"Kurda Yon" <kurda...@yahoo .comwrote in message
        >>
        >news:117761341 1.140647.31800@ n35g2000prd.goo glegroups.com.. .
        >| Hi everybody,
        >|
        >| I cannot understand the following thinks. The last line of the
        >| fillowing code produces a message about mistake (not a valid MySQL-
        >| Link resource):
        >|
        >| $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
        >| mysql_select_db ( $db_name, $link);
        >| $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
        >| mysql_close( $link );
        >| mysql_select_db ( "sss", $link );
        >|
        >| It is clear why it is happens. Because I use $link to the database,
        >| which has been closed in the previouse line. To remove this problem I
        >| have to change the code in the following way:
        >|
        >| $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
        >| mysql_select_db ( $db_name, $link);
        >| $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
        >| mysql_close( $link_new );
        >| mysql_select_db ( "sss", $link );
        >|
        >| Now I do the same but with the usage of a function. As it is expected,
        >| the following code produce the message about mistake:
        >|
        >| $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
        >| mysql_select_db ( $db_name, $link);
        >| function fff()
        >| {
        >| $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
        >| mysql_close( $link );
        >| }
        >| fff();
        >| mysql_select_db ( "sss", $link );
        >|
        >| But what is strange and what I cannot understand is why the previosly
        >| used solution does not work. The following code alse generate the same
        >| message!
        >|
        >| $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
        >| mysql_select_db ( $db_name, $link);
        >| function fff()
        >| {
        >| $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
        >| mysql_close( $link_new );
        >| }
        >| fff();
        >| mysql_select_db ( "sss", $link );
        >>
        >hard to understand you.
        >>
        >is this your *real* code? you realize that $link INSIDE the function is not
        >$link OUTSIDE your function, right? why are you worrying about closing the
        >connection anyway? the connection is dropped after the script is run/exited.
        >
        Sorry, may be I explained it in a bad way. The problem is that the
        following code produce a message about mistake:
        >
        $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
        mysql_select_db ( $db_name, $link);
        function fff()
        {
        $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
        mysql_close( $link_new );
        }
        fff();
        mysql_select_db ( "sss", $link );
        >
        Or more precisely the last line causes the following message:
        Warning: mysql_select_db (): 2 is not a valid MySQL-Link resource
        >
        And it happens only if I execute the fff() function before. I suppose
        that origin of the problem is that I close connection to the database
        in the function. But I do not understand why. I do give another name
        to the connection.
        >
        >
        From the mysql_connect() manual page:

        resource mysql_connect ( [string $server [, string $username [, string
        $password [, bool $new_link [, int $client_flags]]]]] )

        [...]

        If a second call is made to mysql_connect() with the same arguments, no
        new link will be established, but instead, the link identifier of the
        already opened link will be returned. The new_link parameter modifies
        this behavior and makes mysql_connect() always open a new link, even if
        mysql_connect() was called before with the same parameters. In SQL safe
        mode, this parameter is ignored.

        This might be what causes your error.

        HTH

        Sh.

        Comment

        • Kurda Yon

          #5
          Re: not a valid MySQL-Link resource

          On Apr 27, 12:07 pm, Schraalhans Keukenmeester
          <bitbuc...@inva lid.spamwrote:
          Kurda Yon wrote:
          On Apr 26, 9:20 pm, "Steve" <no....@example .comwrote:
          "Kurda Yon" <kurda...@yahoo .comwrote in message
          >
          >news:117761341 1.140647.31800@ n35g2000prd.goo glegroups.com.. .
          | Hi everybody,
          |
          | I cannot understand the following thinks. The last line of the
          | fillowing code produces a message about mistake (not a valid MySQL-
          | Link resource):
          |
          | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
          | mysql_select_db ( $db_name, $link);
          | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
          | mysql_close( $link );
          | mysql_select_db ( "sss", $link );
          |
          | It is clear why it is happens. Because I use $link to the database,
          | which has been closed in the previouse line. To remove this problem I
          | have to change the code in the following way:
          |
          | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
          | mysql_select_db ( $db_name, $link);
          | $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
          | mysql_close( $link_new );
          | mysql_select_db ( "sss", $link );
          |
          | Now I do the same but with the usage of a function. As it is expected,
          | the following code produce the message about mistake:
          |
          | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
          | mysql_select_db ( $db_name, $link);
          | function fff()
          | {
          | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
          | mysql_close( $link );
          | }
          | fff();
          | mysql_select_db ( "sss", $link );
          |
          | But what is strange and what I cannot understand is why the previosly
          | used solution does not work. The following code alse generate the same
          | message!
          |
          | $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
          | mysql_select_db ( $db_name, $link);
          | function fff()
          | {
          | $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
          | mysql_close( $link_new );
          | }
          | fff();
          | mysql_select_db ( "sss", $link );
          >
          hard to understand you.
          >
          is this your *real* code? you realize that $link INSIDE the function is not
          $link OUTSIDE your function, right? why are you worrying about closing the
          connection anyway? the connection is dropped after the script is run/exited.
          >
          Sorry, may be I explained it in a bad way. The problem is that the
          following code produce a message about mistake:
          >
          $link = mysql_connect( "localhost","tm p_user","tmpxxx " );
          mysql_select_db ( $db_name, $link);
          function fff()
          {
          $link_new = mysql_connect( "localhost","tm p_user","tmpxxx " );
          mysql_close( $link_new );
          }
          fff();
          mysql_select_db ( "sss", $link );
          >
          Or more precisely the last line causes the following message:
          Warning: mysql_select_db (): 2 is not a valid MySQL-Link resource
          >
          And it happens only if I execute the fff() function before. I suppose
          that origin of the problem is that I close connection to the database
          in the function. But I do not understand why. I do give another name
          to the connection.
          >
          From the mysql_connect() manual page:
          >
          resource mysql_connect ( [string $server [, string $username [, string
          $password [, bool $new_link [, int $client_flags]]]]] )
          >
          [...]
          >
          If a second call is made to mysql_connect() with the same arguments, no
          new link will be established, but instead, the link identifier of the
          already opened link will be returned. The new_link parameter modifies
          this behavior and makes mysql_connect() always open a new link, even if
          mysql_connect() was called before with the same parameters. In SQL safe
          mode, this parameter is ignored.
          >
          This might be what causes your error.
          >
          HTH
          >
          Sh.
          Thanks! It helps.

          Comment

          • Kurda Yon

            #6
            Re: not a valid MySQL-Link resource

            It is me again. It seems that I solve the previous problem (with your
            help) but get a new one (which seems to be very related to the
            previous one).

            This part of code produce a message about mistake:

            $link = mysql_connect( "localhost","tm p_user","pswxxx " );
            function fff()
            {
            $link_new = mysql_connect( "localhost","tm p_user","pswxxx ", true );
            mysql_close( $link_new );
            }
            fff();
            mysql_select_db ( "sss", $link );
            $result = mysql_query( "select * from root" );

            The message is:
            Access denied for user: 'nobody@localho st' (Using password: NO)
            A link to the server could not be established

            It complains about the last line. And this message disappears if I do
            not coll the function fff (I replace fff(); by //fff();).

            Can anybody explain this behavior? It seems that connection made to
            the database in the function somehow influences on other connection.

            Comment

            • Schraalhans Keukenmeester

              #7
              Re: not a valid MySQL-Link resource

              On Fri, 27 Apr 2007 04:53:04 -0700, Kurda Yon wrote:
              It is me again. It seems that I solve the previous problem (with your
              help) but get a new one (which seems to be very related to the
              previous one).
              >
              This part of code produce a message about mistake:
              >
              $link = mysql_connect( "localhost","tm p_user","pswxxx " );
              function fff()
              {
              $link_new = mysql_connect( "localhost","tm p_user","pswxxx ", true );
              mysql_close( $link_new );
              }
              fff();
              mysql_select_db ( "sss", $link );
              $result = mysql_query( "select * from root" );
              >
              The message is:
              Access denied for user: 'nobody@localho st' (Using password: NO)
              A link to the server could not be established
              >
              It complains about the last line. And this message disappears if I do
              not coll the function fff (I replace fff(); by //fff();).
              >
              Can anybody explain this behavior? It seems that connection made to
              the database in the function somehow influences on other connection.
              I'm guessing here: You use literal strings here in your post making the
              mysql connection, but do you perhaps use variables in your real code? If
              so, (and assuming globals are off) the function doesn't see these
              variables unless you specify them global in the function.

              Other than that, I can't think of anything right now. I cannot reproduce
              the error anyway with my code (below).

              <?PHP
              require 'dbdata.inc.php ';
              $link = mysql_connect($ dbhost,$dbuser, $dbpasswd);
              function dbopen() {
              global $dbhost, $dbuser, $dbpasswd;
              $new_link = mysql_connect($ dbhost,$dbuser, $dbpasswd,true) ;
              mysql_close($ne w_link);
              }
              dbopen();
              mysql_select_db ($dbname,$link) ;
              $result= mysql_query('se lect count(*) from customers',$lin k);
              $row = mysql_fetch_row ($result);
              echo $row['0']; // outputs 13, oughtta be closer to 50 if you ask me;-)
              ?>

              Comment

              • Kurda Yon

                #8
                Re: not a valid MySQL-Link resource

                On Apr 27, 3:02 pm, Schraalhans Keukenmeester <inva...@invali d.spam>
                wrote:
                On Fri, 27 Apr 2007 04:53:04 -0700, Kurda Yon wrote:
                It is me again. It seems that I solve the previous problem (with your
                help) but get a new one (which seems to be very related to the
                previous one).
                >
                This part of code produce a message about mistake:
                >
                $link = mysql_connect( "localhost","tm p_user","pswxxx " );
                function fff()
                {
                $link_new = mysql_connect( "localhost","tm p_user","pswxxx ", true );
                mysql_close( $link_new );
                }
                fff();
                mysql_select_db ( "sss", $link );
                $result = mysql_query( "select * from root" );
                >
                The message is:
                Access denied for user: 'nobody@localho st' (Using password: NO)
                A link to the server could not be established
                >
                It complains about the last line. And this message disappears if I do
                not coll the function fff (I replace fff(); by //fff();).
                >
                Can anybody explain this behavior? It seems that connection made to
                the database in the function somehow influences on other connection.
                >
                I'm guessing here: You use literal strings here in your post making the
                mysql connection, but do you perhaps use variables in your real code? If
                so, (and assuming globals are off) the function doesn't see these
                variables unless you specify them global in the function.
                >
                Other than that, I can't think of anything right now. I cannot reproduce
                the error anyway with my code (below).
                >
                <?PHP
                require 'dbdata.inc.php ';
                $link = mysql_connect($ dbhost,$dbuser, $dbpasswd);
                function dbopen() {
                global $dbhost, $dbuser, $dbpasswd;
                $new_link = mysql_connect($ dbhost,$dbuser, $dbpasswd,true) ;
                mysql_close($ne w_link);}
                >
                dbopen();
                mysql_select_db ($dbname,$link) ;
                $result= mysql_query('se lect count(*) from customers',$lin k);
                $row = mysql_fetch_row ($result);
                echo $row['0']; // outputs 13, oughtta be closer to 50 if you ask me;-)
                ?>
                Thank you for your code. I have compared it with my code (line by
                line) and found out that the origin of the mistake was that I did not
                put $link, as the second argument of the function mysql_query (in the
                last line).

                Thanks!

                Comment

                Working...