Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过php代码连接到数据库_Php_Mysql - Fatal编程技术网

通过php代码连接到数据库

通过php代码连接到数据库,php,mysql,Php,Mysql,我正在用PHP编写一个游戏,并使用以下代码连接到数据库 //$sqldb=mysql_connect('godaddy.hostedresource.com', 'godaddyUserName', 'godaddyPassword') OR die ('Unable to connect to database! Please try again later.'); $sqldb=mysql_connect('localhost', 'root', 'mypassword') OR die (

我正在用PHP编写一个游戏,并使用以下代码连接到数据库

//$sqldb=mysql_connect('godaddy.hostedresource.com', 'godaddyUserName', 'godaddyPassword') OR die ('Unable to connect to database! Please try again later.');
$sqldb=mysql_connect('localhost', 'root', 'mypassword') OR die ('Unable to connect to database! Please try again later.');
这里的技巧是,如果我在生产服务器上,我会注释掉godaddy数据库;当我将代码上传到服务器时,我会注释掉localhost代码

不幸的是,无法识别的情况发生了,我上传了错误连接的代码,并将其注释掉;这导致24小时的客户被拒之门外!:(


有没有办法让代码知道它是否在本地主机服务器上,如果不是,那么它会查找godaddy连接?

我通常使用一种方法来获取站点的URL/域?这在某些情况下和设置下可以工作。否则,如果您使用的是固定IP,您也可以使用这种方法

查看一下使用$\u服务器的方法


我通常使用一种方法来获取网站的URL/域?这在某些情况下和设置下可以工作。否则,如果您使用的是固定IP,您也可以使用这种方法

查看一下使用$\u服务器的方法


一种方法是检查外部IP地址并查看您所在的位置。解决方案应通过查看
$\u服务器
全局变量内的属性来显示自身。

一种方法是检查外部IP地址并查看您所在的位置。解决方案应通过查看适当的在
$\u服务器中绑定全局变量。

我有一个很好的建议:你编写一个游戏,游戏是一个大程序,你不要在大程序中直接使用mysql*函数,因为你自己应该处理它们,比如错误处理。我建议你使用DB处理程序。请谷歌搜索:DB处理程序PHP

我有一个很好的建议:你编写一个游戏,游戏是一个大程序,你不能在大程序中直接使用mysql*函数,因为你自己应该处理它们,比如错误处理。我建议你使用DB处理程序。请谷歌搜索:DB处理程序PHP

你可以试着确定它是在live上还是在localhost上

if ($_SERVER['SERVER_NAME'] == 'the.name.of.your.devel.server') {
    $host = 'localhost';
} else {
    $host = 'name.of.godaddy.server';
}
$sqldb = mysql_connect($host, ....);
if($_SERVER["SERVER_NAME"] == "localhost" 
    && 
   $_SERVER["SERVER_ADDR"] == "127.0.0.1"){
  // in localhost
  $hostname = "localhost";
  $username = "localuser";
  $password = "localpassword";
}else{
  // not in localhost
 $hostname = "livehost";
 $username = "liveuser";
 $password = "livepassword";
}
如果无法连接到数据库但将错误保存到文件中,则失败

if(!mysql_connect($hostname,$username,$password)){
 file_put_contents("mysql_connect.error",mysql_error(),FILE_APPEND);
 die("Couldn't connect to database");
}

建议您不要再使用mysql,切换到PDO或mysqli.

您可以尝试此操作,以确定其是否在live或localhost上

if($_SERVER["SERVER_NAME"] == "localhost" 
    && 
   $_SERVER["SERVER_ADDR"] == "127.0.0.1"){
  // in localhost
  $hostname = "localhost";
  $username = "localuser";
  $password = "localpassword";
}else{
  // not in localhost
 $hostname = "livehost";
 $username = "liveuser";
 $password = "livepassword";
}
如果无法连接到数据库但将错误保存到文件中,则失败

if(!mysql_connect($hostname,$username,$password)){
 file_put_contents("mysql_connect.error",mysql_error(),FILE_APPEND);
 die("Couldn't connect to database");
}

建议您不要再使用mysql,切换到PDO或mysqli。

正如其他人所提到的,您可以使用
$\u服务器
变量获取脚本正在运行的当前站点。不过,我想提供另一种解决方案

您可以在网站(本地和生产)中创建一个文件夹,类似于
config
,然后在其中存储一个配置文件,例如
config.php
,其中包含以下内容:

<?php
// Local
$db_host = 'localhost';
$db_username = 'root';
$db_password = 'mypassword';
?>
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/config/config.php");
$sqldb=mysql_connect($db_host, $db_username, $db_password) OR die ('Unable to connect to database! Please try again later.');
?>
然后,在PHP代码中执行以下操作:

<?php
// Local
$db_host = 'localhost';
$db_username = 'root';
$db_password = 'mypassword';
?>
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/config/config.php");
$sqldb=mysql_connect($db_host, $db_username, $db_password) OR die ('Unable to connect to database! Please try again later.');
?>

现在,只需将不同的配置文件放在它们所在的位置,然后上载其他所有内容,这样,您的代码在运行时就可以访问不同的配置文件


此外,
.htaccess
文件应防止任何人通过HTTP访问该文件,并且在PHP标记中包含文件内容,以及.PHP扩展名应防止任何人在能够访问该文件时看到任何内容(PHP将在呈现该文件之前解析该文件,并且不会输出任何内容).

正如其他人提到的,您可以使用
$\u SERVER
变量获取脚本运行的当前站点。但是,我想提供一个替代解决方案

您可以在网站(本地和生产)中创建一个文件夹,类似于
config
,然后在其中存储一个配置文件,例如
config.php
,其中包含以下内容:

<?php
// Local
$db_host = 'localhost';
$db_username = 'root';
$db_password = 'mypassword';
?>
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/config/config.php");
$sqldb=mysql_connect($db_host, $db_username, $db_password) OR die ('Unable to connect to database! Please try again later.');
?>
然后,在PHP代码中执行以下操作:

<?php
// Local
$db_host = 'localhost';
$db_username = 'root';
$db_password = 'mypassword';
?>
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/config/config.php");
$sqldb=mysql_connect($db_host, $db_username, $db_password) OR die ('Unable to connect to database! Please try again later.');
?>

现在,只需将不同的配置文件放在它们所在的位置,然后上载其他所有内容,这样,您的代码在运行时就可以访问不同的配置文件

此外,
.htaccess
文件应防止任何人通过HTTP访问该文件,并且在PHP标记中包含文件内容,以及.PHP扩展名应防止任何人在能够访问该文件时看到任何内容(PHP将在呈现该文件之前解析该文件,并且不会输出任何内容)