用mysql_connect连接成功但是只能用默认的3306端口。mysql_connect太老好像无法实现连接。请问下如何用mysql_real_connect进行带端口号的mysql连接。API函数换了参数也对应传入但总是连接不了,报错。

解决方案 »

  1.   

    语法: int mysql_connect(string [hostname] [:port], string [username], string [password]);dbh =  mysql_connect('localhost:3306','root','password'); 天狼工作室 http://www.j2soft.cn/
      

  2.   

    http://www.21tx.com/dev/2006/12/31/12148_2.html
      

  3.   

    Public Function OpenConnection(ByVal sHostName As String, _
                                   ByVal sUserName As String, _
                                   ByVal sPassword As String, _
                                   ByVal sDbName As String, _
                          Optional ByVal lPortNum As Long = 3306, _
                          Optional ByVal lFlags As MYSQL_FLAG, _
                          Optional ByVal cs_name As String) As MYSQL_CONNECTION_STATE
    Dim lNumber As Long
        
        Me.CloseConnection
        OpenConnection = m_State    gServerName = sHostName
        gUserID = sUserName
        gUserPass = sPassword
        gDbName = sDbName
        gPortNum = lPortNum
        gOptions = lFlags
        gCharacterSetName = cs_name
        m_MYSQL = mysql_init(m_MYSQL)
        
        If m_MYSQL = 0 Then
            Err.Raise vbObjectError + 1, "DBConn.OpenConnection", "Couldn't obtain a connection handler."
            Exit Function
        Else
            If UBound(MyOptArr) > 0 Then
                Dim i As Integer
                'set options
                For i = 1 To UBound(MyOptArr)
                    Select Case MyOptArr(i).eOption
                    Case MYSQL_OPT_CONNECT_TIMEOUT
                        mysql_options m_MYSQL, MYSQL_OPT_CONNECT_TIMEOUT, MyOptArr(i).sArg
                    Case MYSQL_OPT_COMPRESS
                        mysql_options m_MYSQL, MYSQL_OPT_COMPRESS, 0
                    Case MYSQL_OPT_NAMED_PIPE
                        mysql_options m_MYSQL, MYSQL_OPT_NAMED_PIPE, 0
                    Case MYSQL_INIT_COMMAND
                        mysql_options m_MYSQL, MYSQL_INIT_COMMAND, MyOptArr(i).sArg
                    Case MYSQL_READ_DEFAULT_FILE
                        mysql_options m_MYSQL, MYSQL_READ_DEFAULT_FILE, MyOptArr(i).sArg
                    Case MYSQL_READ_DEFAULT_GROUP
                        mysql_options m_MYSQL, MYSQL_READ_DEFAULT_GROUP, MyOptArr(i).sArg
                    End Select
                Next i
            End If        If mysql_real_connect(m_MYSQL, gServerName, gUserID, gUserPass, gDbName, gPortNum, m_CESApp.SoftWare, gOptions) = 0 Then
                'connection attempt NG ...
                CheckForError "DBConn.OpenConnection"
                pRealClose
            Else
                m_State = MY_CONN_OPEN
                
                If cs_name <> "" Then
                   gCharacterSetName = UCase(gCharacterSetName)
                   
                   lNumber = mysql_set_character_set(m_MYSQL, gCharacterSetName)
                   If lNumber > 0 Then
                      CheckForError "DBConn.OpenConnection"
                   End If
                End If
            End If
        End If    OpenConnection = m_State
    End Function