Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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 mysql\u connect()-不推荐使用?使用本地主机_Php_Mysql_Phpmyadmin_Database Connection - Fatal编程技术网

Php mysql\u connect()-不推荐使用?使用本地主机

Php mysql\u connect()-不推荐使用?使用本地主机,php,mysql,phpmyadmin,database-connection,Php,Mysql,Phpmyadmin,Database Connection,我构建了一个本地数据库,并使用连接脚本连接到localhost下的数据库,如下所示: mysql_connect('localhost', 'root', ''); 我现在需要将生产服务器工作移到实际服务器上 我的第一个问题是我应该把“localhost”改成什么,以及对根的理解?我需要在我的服务器上准备一个私有部分,但目前所有内容都是公开的。这就是我用localhost替换的内容吗 然而,在搜索时,我发现mysql\u connect已被弃用。那么,什么是替代品呢 这是连接到数据库marmi

我构建了一个本地数据库,并使用连接脚本连接到localhost下的数据库,如下所示:

mysql_connect('localhost', 'root', '');
我现在需要将生产服务器工作移到实际服务器上

我的第一个问题是我应该把“localhost”改成什么,以及对根的理解?我需要在我的服务器上准备一个私有部分,但目前所有内容都是公开的。这就是我用
localhost
替换的内容吗

然而,在搜索时,我发现
mysql\u connect
已被弃用。那么,什么是替代品呢

这是连接到数据库marmit_1的完整脚本

<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('marmit_1');

以下是MySQLi连接的简单示例

<?php
$con=mysqli_connect("localhost","root","password","database_name");

if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM test");

echo "<table border='1'>
<tr>
<th>First name</th>
<th>Last name</th>
<th>Caption</th>
</tr>";

while($row = mysqli_fetch_array($result)) {
  echo "<tr>";
  echo "<td>" . $row['firstname'] . "</td>";
  echo "<td>" . $row['lastname'] . "</td>";
  echo "<td>" . $row['caption'] . "</td>";
  echo "</tr>";
  }

    echo "</table>";

mysqli_close($con);
?>

参考文献:


localhost
在本例中,是脚本将尝试连接到MySQL服务器的主机名
localhost
通常连接到环回适配器,换句话说,它连接到运行代码的同一台机器

如果MySQL服务器与Apache/PHP在同一台物理机器上运行,那么您可以使用
localhost
作为主机名连接到MySQL服务器,前提是MySQL服务器配置为在localhost上运行(默认)

如果MySQL服务器位于远程主机上,或者手动配置为不绑定到
127.0.0.1

的默认环回适配器,则只需更改
localhost


名字
姓
说明文字
请注意,使用PDO包装器,无论您运行什么查询,您的代码都将保持与以前基于mysql ext的代码一样简单。

而对于原始mysqli,这将是痛苦和痛苦——这些广告都不想告诉你。

正如其他人已经说过的,你应该使用mysqli或PDO库(PDO是我更喜欢的),但是你应该明确地使用准备好的声明

我不太理解你对这一部分的理解:

[…]我应该将“localhost”更改为什么,以及对 根?我需要在我的服务器上准备一个私有部分,但是 目前一切都是公开的。这就是我要取代的吗 本地主机与?[……]

让我们将其分为两部分:

  • “mysql连接中的本地主机”
    此值取决于您的服务器。如果您有一个简单的Web主机,那么您的提供商应该已经向您提供了一些关于如何访问mysql数据库的信息。当您拥有专用/虚拟服务器并托管自己的解决方案时,您必须通过主机名或ip访问服务器。因此,当mysql由与您的网页相同的服务器(例如运行apache和mysql的相同服务器)提供时,localhost或127.0.0.1是可以的

  • “需要准备私人部分”
    我认为您正在寻找虚拟主机[1]-使用这些虚拟主机,您可以将不同的网页放在不同的文件夹中:例如:

    /srv/www/mypage.com/
    /srv/www/blog.mypage.com/
    /srv/www/myothersuperpage.com/

因此,您可以使用mypage.com访问在/srv/www/mypage.com下找到的网页(其他网页也是如此)


[1]

查看是的,它已被弃用。使用或检查链接以获取示例。这是我可能需要与主持人讨论的问题吗?对不起,我不是一个真正的后端开发人员,所以这是我感到困惑的地方!我的主机由daily.co.uk/powerpanel提供。我想我需要询问他们连接参数需要是什么。@Francesca,请先尝试
localhost
,因为这是默认值。如果这不起作用,那就去问他们。
<?php
include 'bestpdo.php';
$result = DB::query("SELECT * FROM test")->fetchAll();
?>
<table border='1'>
<tr>
  <th>First name</th>
  <th>Last name</th>
  <th>Caption</th>
</tr>
<?php foreach($result as $row) {
<tr>
  <td><?=$row['firstname']?></td>
  <td><?=$row['lastname']?></td>
  <td><?=$row['caption']?></td>
</tr>
<?php endforeach ?>
</table>