似乎无法连接到 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服务器[重复]
MySQL Workbench 无法连接到我的 RDS 数据库:无法连接到 localhost
安装后无法连接到“localhost”(10061)上的 MySQL 服务器