mysql_connect() - 已弃用?使用localhost

时间:2014-03-21 16:27:04

标签: php mysql phpmyadmin database-connection

我构建了一个本地数据库并使用连接脚本连接到localhost下的数据库,其中包含以下行:

mysql_connect('localhost', 'root', '');

我现在需要将生产服务器工作移动到我的实际服务器。

我的第一个问题是我应该改变什么&#34; localhost&#34; to,和根的理解?我需要在我的服务器上准备一个PRIVATE部分,但目前一切都在public_html中。那就是我用{<1}}取代了什么?

但是在搜索时我发现localhost已被弃用。那么替代品是什么?

这是连接数据库marmit_1

的完整脚本
mysql_connect

4 个答案:

答案 0 :(得分:1)

在这种情况下,

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

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

如果MySQL服务器位于远程主机上或手动配置为不绑定到localhost的默认环回适配器,则只会更改127.0.0.1

答案 1 :(得分:0)

以下是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);
?>

参考文献:

答案 2 :(得分:0)

这是super simple PDO-based solution:

<?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>

请注意,使用PDO包装器,无论您运行什么查询,您的代码都将像以前的mysql ext一样简单。 虽然使用原始的mysqli会导致PAIN和痛苦 - 这些广告都不会告诉你。

答案 3 :(得分:0)

正如其他人已经说过的那样,你应该使用mysqli或PDO库(PDO是我愿意的) - 但你应该明确地使用预备语句。

我对这部分不太了解你:

  

[...]我应该改变什么&#34; localhost&#34;对...的理解   根?我需要在我的服务器上准备一个PRIVATE部分   目前一切都在public_html中。那就是我所取代的   localhost用? [...]

让我们分成两部分:

  • &#34; mysql连接中的localhost&#34;
    该值取决于您的服务器。如果你有一个简单的webhost,你的提供者应该给你一些关于如何访问mysql数据库的信息。当您拥有专用/虚拟服务器并托管自己的解决方案时,您必须通过hostename或ip访问服务器。所以localhost或127.0.0.1是可以的,当相同的服务器提供mysql作为你的网页时(例如运行apache和mysql的同一服务器)

  • &#34;需要准备一个私人部分&#34;
    我认为你正在寻找虚拟主机[1] - 你可以将不同的网页放在不同的文件夹中:例如:

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

所以你可以使用mypage.com访问/srv/www/mypage.com下的网页(和其他人一样)

[1] http://httpd.apache.org/docs/2.2/vhosts/examples.html