【问题标题】:php database help, database hosted on separate server than web hostphp 数据库帮助,数据库托管在与 Web 主机不同的服务器上
【发布时间】:2016-08-15 10:39:05
【问题描述】:

您好,我正在创建一个登录/注册数据库。我没有在同一台服务器上托管数据库,那么如何让它指向我的单独域?另外,如果你能告诉我根指的是什么……谢谢

这是我的文件:

db.php

<?php
$connection = mysql_connect('localhost', 'root', '');
if (!$connection){
die("Database Connection Failed" . mysql_error());
}
$select_db = mysql_select_db('register');
if (!$select_db){
die("Database Selection Failed" . mysql_error());
}
?>

链接(我的脚本和原始脚本):https://docs.google.com/document/d/1u60X_mKd9z548qrh_VjdyTx3hziiZiYPLUa_rJX11mQ/edit?usp=sharing

【问题讨论】:

  • localhost更改为服务器的域或IP。如果刚开始,您应该考虑使用mysqlipdo
  • 只需修改 mysql_connect 参数以匹配您的数据库服务器的主机名、用户名和密码。 IP 地址应该可以正常工作,但也可以使用机器名称或 DNS 条目,具体取决于您的网络设置。

标签: php mysql database html login


【解决方案1】:

对于初学者,DON'T USE mysql_connect()! 使用mysqliPDO。其次,不要让您的应用程序以root 身份登录MySQL;为此目的创建一个特定于应用程序的非特权用户(有密码!)。

您需要从 Web 服务器的 IP 或 DNS 地址创建具有连接权限的非特权用户,而不是连接到 localhost 您的 PHP 需要连接到 DB 服务器的 IP 或 DNS 地址,如下所示:

$dsn = "mysql:host=mysqlserver.mynetwork.com;dbname=register";
try
{
    $conn = new PDO($dsn, $appuser, $apppasswd);
}
catch (PDOException $e)
{
    echo 'Connection failed: ' . $e->getMessage();
}

【讨论】:

    【解决方案2】:

    你可以试试下面的例子

    $server = "192.168.1.1"; //server name or IP Address 
    $username = "root"; //database username
    $password = "password"; //database password
    $database = "mydatabase";   //database to connect to
    
    $connection = mysqli_connect( $server, $username, $password, $database);
    
    if (!$connection){
       die("Database Connection Failed" . mysqli_error());
    }
    
    else{
    
    //sql statement
    
    }
    
    mysqli_close($connection);
    

    谢谢

    【讨论】:

    • 正如@chris85 提到的,您应该考虑使用mysqli。我已经更新了我的答案以反映这一点
    猜你喜欢
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    相关资源
    最近更新 更多