为什么不使用xampp

时间:2019-03-08 17:17:47

标签: php mysql xampp

在使用Xampp时使用以下内容连接到MySQL服务器。

<?php
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_pass = '';

$mysql_db = 'a_database';

if(mysqli_connect('$mysql_host','$mysql_user','$mysql_pass') || !mysqli_select_db($mysql_db)) {
    die ('could not connect');
}

?>

但是我收到以下错误:

  

警告:mysqli_connect():php_network_getaddresses:getaddrinfo   失败:未知此类主机。在C:\ xampp \ htdocs \ php \ connect.inc.php中   在第8行

     

警告:mysqli_connect():(HY000 / 2002):   php_network_getaddresses:getaddrinfo失败:未知此类主机。   在第8行的C:\ xampp \ htdocs \ php \ connect.inc.php中

     

警告:   mysqli_select_db()恰好需要2个参数,其中1个给定   第8行的C:\ xampp \ htdocs \ php \ connect.inc.php无法连接

如何解决此问题?

2 个答案:

答案 0 :(得分:4)

单引号请勿插入,它们以文字文本发送,包括$,这不是您想要的。

无论如何,您都不应该引用这些值,只需将它们原样放置:

$db = mysqli_connect($mysql_host, $mysql_user, $mysql_pass)

在PHP代码中看到诸如"$x"之类的东西是一种非常常见的反模式,这大概是由于shell脚本可能在必要时冒出来的。在PHP中不是,并且经常会引起麻烦,就像这里一样。

别忘了将数据库连接保存为变量,否则在使用前将其丢弃。

要注意的另一件事是,mysqli的面向对象的界面明显较少冗长,使代码更易于阅读和审计,并且不容易与过时的mysql_query界面混淆。在您对程序风格投入过多之前,值得先进行切换。示例:$db = new mysqli(…)$db->prepare("…")程序接口是PHP 4时代的一种产物,当时引入了mysqli API,理想情况下不应在新代码中使用。

使用mysqli的正确方法是:

$db = new mysqli($mysql_host, $mysql_user, $mysql_pass)

除了它的最小限度外,其工作原理完全相同,如:

$stmt = $db->prepare("...");

而不是更加冗长:

$stmt = mysqli_prepare($db, "...")

对于语句操作功能,它变得更加冗长。

答案 1 :(得分:1)

您未在mysqli_select_db中指定数据库连接

试试看!

$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_pass = '';

$mysql_db = 'a_database';

$db = mysqli_connect($mysql_host, $mysql_user, $mysql_pass);

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

// you select db with the mysql connection variable
mysqli_select_db($db, $mysql_db);