我已经使用php创建了注册和登录表单。我从谷歌那里获得了消息来源。
因此,当运行index.php.时,我添加了所有相应的代码
它显示,
SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
我尝试使用stackoverflow和谷歌来解决这个问题,但仍然无法纠正。
我正在使用examplep。在xampp控制面板中,apache和mysql模块正在运行。apache端口为80443,mysql端口为3306。
我可以知道,还有我的其他错误吗?。。
有人能帮我吗?如有任何帮助,我们将不胜感激。
提前谢谢。
这是我的配置。hp:
<?php
ob_start();
session_start();
//set timezone
date_default_timezone_set('Europe/London');
//database credentials
define('DBHOST','localhost');
define('DBUSER','root');
define('DBPASS','');
define('DBNAME','register');
//application address
define('DIR','http://domain.com/');
define('SITEEMAIL','noreply@domain.com');
try {
//create PDO connection
$db = new PDO("mysql:host=".DBHOST.";port=8889;dbname=".DBNAME, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
//show error
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
exit;
}
//include the user class, pass in the database connection
include('classes/user.php');
$user = new User($db);
?>
你不是说你的mysql端口是3306:吗
$db = new PDO("mysql:host=".DBHOST.";port=8889
//------------------------------------------^
这可能会有所帮助:
$db = new PDO("mysql:host=".DBHOST.";port=3306
$db=新PDO("mysql:host=".DBHOST.";端口=3306;dbname=".dbname,DBUSER,DBPASS);
您应该将端口号更改为默认值:3306!希望这对有帮助
当一些其他应用程序(如skype和IIS)使用Apache(即80)和mysql服务器(即3306 )的端口时,通常会发生此错误
您可以卸载这些应用程序,或者将本地主机的端口号更改为其他端口号,并在settings.php 中进行正确的更改
我也遇到了这个错误。我做了以下事情:1.查找mysql使用的端口号。在phpmyadmin中,我运行了以下sql:
show variables;
它显示了mysql的变量列表。向下滚动,您会发现端口号。
- 我编辑php代码如下:
$dsn='mysql:host=127.0.0.1;端口=3307;dbname=learnphpfast';
它就像一个符咒!
对于Drupal用户-
这种情况通常是由于服务器与mysql通信的最大执行时间。将最长执行时间从60秒增加到所需的上限,然后再次尝试刷新页面。
它对我有效。
Sasi,如果你在本地服务器上运行这个,它可能是你为windows设置的,本地服务器需要配置为在上发送电子邮件。
在这里,您可以找到如何将XAMPP配置为从localhost发送邮件。
很抱歉我在这里回答你,但我没有足够的声誉来发表评论:D