php无法打开mysql数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php无法打开mysql数据库相关的知识,希望对你有一定的参考价值。

代码如下:
<?php // put your code here $link=mysqli_connect("localhost","root","") or die("无法创建连接

".mysql_error()); // echo "
数据库连接成功!
\n"; $db_selected=mysqli_select_db("homework",$link) or die("无法打开mysql数据库
".mysql_error($link));数据库是连接成功的,但是运行后却出现了
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in D:\xampps\htdocs\php\denglu.php on line 17

Warning: mysql_error() expects parameter 1 to be resource, object given in D:\xampps\htdocs\php\denglu.php on line 18
无法打开mysql数据库这要怎么办啊!好烦啊!!!明天要交作业了天!!!回答请详细点

其实错误信息已经提示了错误的原因:

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given
警告:mysqli_select_db()的第1个参数应该是mysqli,而你给的是字符串

Warning: mysql_error() expects parameter 1 to be resource, object given in
警告:mysql_error()的第1个参数应该是个资源句柄,而你给的是个对象

据我的判断,可能你没有注意到这两个函数的正确用法,以下是这两个参数的原型:

bool mysqli_select_db ( mysqli $link , string $dbname )
string mysql_error ([ resource $link_identifier = NULL ] )

据此,建议代码修改如下:

$db_selected=mysqli_select_db($link,"homework")

至于“警告:mysql_error()的第1个参数应该是个资源句柄,而你给的是个对象”,这个错误的原因,据我的判断,你还需要检查下 $link 是不是正确连接到mysql了。
参考技术A 你先试着只实现简单的连接,先不要弄错误提示。仅仅这样
$link = mysql_connect("localhost","root","") or die("数据库连接失败!");
if($link)
echo "连接成功!";



mysql_select_db("homework");追问

试过拉,显示连接成功的 就是打不开数据库
你QQ有没有阿?我加你吧

追答

我先问一下,你的数据库中有homework这个库吗?

无法使用外部服务器上的 php 文件连接数据库(mysql)

【中文标题】无法使用外部服务器上的 php 文件连接数据库(mysql)【英文标题】:Can't connect database (mysql) with php files on external server 【发布时间】:2018-02-11 21:13:05 【问题描述】:

无法将数据库(mysql)与来自外部服务器(godaddy)的以下 php 文件连接起来。警告:mysql_connect() []: 无法连接到 /files/files/db.php 和 index.php 中 (10061) 上的 mysql 服务器 `

<?php 
$conn=mysql_connect("localhost","dbusername","dbpasswd");
$db=mysql_select_db('dbname',$conn);
?>

` 并在 db_config.php

`

<?php
define('DB_USER', "dbusername"); 
define('DB_PASSWORD', "dbpasswd"); 
define('DB_DATABASE', "dbname"); 
define('DB_SERVER', "server address"); // db server
$servername = "url.com";
$username = "dbusername";
$password = "dbpasswd";
$dbname = "dbname";
$conn=  mysql_connect($servername,$username,$password)or die(mysql_error());
   mysql_select_db('dbname',$conn);
?>

`

在 db_connect.php 中

`

<?php
class DB_CONNECT 

    // constructor
    function __construct() 
        // connecting to database
        $this->connect();
    

    // destructor
    function __destruct() 
        // closing db connection
        $this->close();
    

    /**
     * Function to connect with database
     */
    function connect() 
        // import database connection variables
        require_once __DIR__ . '/db_config.php';

        // Connecting to mysql database
        $con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());

        // Selecing database
        $db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error());

        // returing connection cursor
        return $con;
    

    /**
     * Function to close db connection
     */
    function close() 
        // closing db connection
        mysql_close();
    



?>

`

【问题讨论】:

第一:请不要在新代码中使用mysql_*函数。这些功能在最近的 PHP 版本中不再可用,请改用 mysqliPDO。第二:我在这里看到 3 个单独的数据库连接,哪些不工作?错误 10061 通常表示网络连接被拒绝(即该主机上没有 mysql 服务器正在侦听)。 如果是外部的,你不能使用本地主机,但你需要IP地址,然后有可能被服务器禁止的安全性 【参考方案1】:

这不是您的代码的问题...存在此问题是因为您正在尝试将实时网站与您的 localhost 数据库连接。我不知道如何使用godaddy 解决它,因为我使用MS azure ......但我可以给你一个基本的想法 - 如果你想将一个实时网站与数据库连接,你必须在godaddy 上创建一个数据库。我知道我回答得太晚了

【讨论】:

以上是关于php无法打开mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章

PHP5不能加载MySQL

无法使用 PHP 页面连接到 MySQL

php使用mysqli连接Mysql,怎么使用永久连接

php + mysql 取得数据库中二进制文件,生成链接供打开

php如何打开在mysql中取出的二进制数据

无法使用外部服务器上的 php 文件连接数据库(mysql)