似乎无法连接到 mysql、localhost?

Posted

技术标签:

【中文标题】似乎无法连接到 mysql、localhost?【英文标题】:can't seem to connect to msql, local host? 【发布时间】:2013-01-05 03:50:57 【问题描述】:

我似乎无法在本地主机下运行此代码,我的目标是制作一个应该在网站上显示的表格,但是当我尝试连接时出现错误:

警告:mysql_connect(): 在 C:\xampp\htdocs\phpProject2\hent.php 上 5号线无法连接

my site name: http://localhost/PhpProject2/hent.php

代码:

<html>
<body>
<?php 

mysql_connect('<server is here>','<my username here>','<password here>') 
or die('can not connect' );
mysql_select_db('<my username here>') or die ('can not connect to <username here>');  

$sql = "Select * from Customer";
$result = mysql_query($sql);
$number= mysql_num_rows($result);

for($i=0; $i < $number; $i++)

    $table = mysql_fetch_row($result);
    echo  $table[0], $table[1];
    echo '<br>';

?>
    </body>
</html> 

我正在使用 xampp,并且 MySQL 在端口 3306 上运行:]

不是我的是真实的代码:]

我会很感激任何答案:]

【问题讨论】:

如果这是新代码,请从使用 MYSQLI_ 而不是 MYSQL 开始。 MYSQL 将从 PHP 5.5 开始贬值。 您是否使用了正确的本地主机、用户名和密码组合?如果您使用默认设置,所有内容都应该在“”中,例如“localhost”、“root”和“”。 你的意思是用 " " 而不是 og ' '? 你试过命令行了吗?在 XAMPP 控制面板中选择 SHELL。在命令行中输入“mysql -h 主机名 -u 用户名 -p”。接下来给你密码。 用引号括起来。您也可以使用单引号。 【参考方案1】:

这是我通常连接到 MySQL 数据库的方式。 我有 config.php

<?php

function db_connect()
   $conn = new mysqli('localhost', 'root', 'leave_black_if_no_password_set', 'database_name');
   if (!$conn) 
      return false;
   
   $conn->autocommit(TRUE);  
    return $conn;



?>

//结束配置

现在,在你的其他文件中调用 config.php: `include 'config.php';

    <html>
    <body>
    <?php 
    include 'php/config.php';
    $dbCon = db_connect();


    $sql = "Select * from Customer";
    $result = mysqli_query($dbCon, $sql);
    $number= mysqli_num_rows($result);

   while($row=mysqli_fetch_array($result))
    
        echo  $row['column_name'];
        echo '<br>';
    
//close conn
 mysqli_close($dbCon);
    ?>
        </body>
    </html> 

【讨论】:

【参考方案2】:

试试这个:

<?php
  $host = "hostname";
  $user = "username";
  $password = "password";
  $database = "database";

  $link = mysqli_connect($host, $user, $password, $database);
  If (!$link)
      echo ("Unable to connect to database!");
  
  else 
  $query = "SELECT * FROM Customer";    
  $result = mysqli_query($link,$query);

  while ($row = mysqli_fetch_array($result, MYSQLI_BOTH))
   echo  $row['<insert column name>']. "<br>";
  

mysqli_close($link);
?>

我在这段代码中使用了 MYSQL 库。您应该检查 mysql 中的列是否称为 0 和 1。B.T.W。我使用 WHILE 而不是 FOR 循环,这只是个人喜好。

【讨论】:

是否有可能找出我正在使用的数据库? :] 在命令行中输入“SHOW DATABASES;”默认数据库为:information_schema、cdcol、mysql、performance_schema、phpmyadmin 和 webauth。所有其他数据库都可能是你的。 @Madde 只是为了确定您是否使用 phpmyadmin / 命令行 / 等创建或添加任何内容到数据库。因为您需要将数据放入数据库中才能将其取出;-) 我没有在 phpadmin 中添加任何内容,但是如果您的意思是这样,我已经在表中添加了数据? :] ex“插入客户价值(null,'Hilda','Olsen','Hakedalsveien 1','1482');” :) @Madde phpMyAdmin 是一个众所周知的程序,可与 MySQL Workbench 相媲美。但是,MySQL Workbench 具有更强大的引导式用户界面 (GUI)。 phpMyAdmin 介于 MySQL 的纯命令行和更可视化的 MySQL Workbench 之间。这三个都允许您向数据库中插入/选择/删除/更新/等数据。【参考方案3】:

我建议你开始使用 PDO;

index.php

<?php 
require "dbc.php";

$getList = $db->getAllData(25);

foreach ($getList as $key=> $row) 
         echo $row['columnName'] .' key: '. $key;
    
?>

dbc.php

<?php
class dbc 
public $dbserver = 'server';
public $dbusername = 'user';
public $dbpassword = 'pass';
public $dbname = 'db';

function openDb()     
    try 
        $db = new PDO('mysql:host=' . $this->dbserver . ';dbname=' . $this->dbname . ';charset=utf8', '' . $this->dbusername . '', '' . $this->dbpassword . '');
     catch (PDOException $e) 
        die("error, please try again " . $e);
            
    return $db;


function getAllData($qty) 
    //prepared query to prevent SQL injections
    $query = "Select * from Customer where zip= ?";
    $stmt = $this->openDb()->prepare($query);
    $stmt->bindValue(1, $qty, PDO::PARAM_INT);
    $stmt->execute();
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    return $rows;
    
?>

【讨论】:

【参考方案4】:

您可以执行以下操作来查看您的错误:

mysql_connect('<server is here>','<my username here>','<password here>') 
or die('Error: '.mysql_error() );

并尽量避免使用以mysql_* 开头的所有函数。它们目前正在被贬低。

使用 mysqli 或 pdo

【讨论】:

oh, thx :] 错误提示“错误:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应。” 你能连接到mysql吗?检查你的主机 如果你的意思是在 xampp 上? :] 它说 MySQL 正在端口 3306 上运行,当我尝试在本地运行其他文档时它工作正常

以上是关于似乎无法连接到 mysql、localhost?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用php连接错误连接到mysql:无法连接到'localhost'(10061)上的MySQL服务器[重复]

无法用php连接到mysql

MySQL Workbench 无法连接到我的 RDS 数据库:无法连接到 localhost

安装后无法连接到“localhost”(10061)上的 MySQL 服务器

Rails 开发 - 无法连接到“localhost”上的 MySQL 服务器 (10061)

#2003 - 无法连接到“localhost”上的 MySQL 服务器 (10061)