2013-03-02 256 views
0

如何连接到the demo phpmyadmin server在PHP?我的代码看起来像这样。连接到远程mysql服务器

<?php 
$host = 'http://demo.phpmyadmin.net/STABLE/'; 
$dbname = 'shubham'; 
$user = 'root'; 
$pass = ''; 

// Attempt to connect to database. 
try { 
$DBH = new PDO("mysql:host={$host};dbname={$dbname}", $user, $pass); 
} catch(PDOException $e) { 
echo $e->getMessage(); 
} 
?> 

,但我得到这是我的错误

QLSTATE[HY000] [2005] Unknown MySQL server host 'http://www.demo.phpmyadmin.net/STABLE/' (1) 
+0

几件事:1)服务器是否在默认端口上运行? 2)你不能通过HTTP连接,除非你想看到PhpMyAdmin。 – Trent 2013-03-02 06:17:19

回答

1

你似乎混淆了两两件事:

  • 由DB服务器和db /架构
  • 数据库服务器和模式本身
支持演示phpMyAdmin的前端

PDO需要后者,db服务器本身。

检查演示的前端代码,我没有看到任何内容,会给我们的数据库服务器的实际连接细节。正如我期望的那样:我发现很难相信phpMyAdmin演示的制作者/维护者会使他们的实际数据库服务器可用于公共远程连接。

+0

感谢您的更正。有没有可用于公共远程连接的数据库服务器?我只想炫耀一个例子。 – 2013-03-02 06:25:39

+0

通常,您可以在自己的托管基础​​架构上配置自己的数据库服务器。根据我的经验,大多数共享主机不会接受远程连接;他们仅限于在其托管环境内与客户建立连接。使用虚拟专用服务器(VPS)进行托管通常是最佳选择。我用过ServerGrove,很高兴。但是你确定你需要真正需要_remote_连接吗?如果您在现有的托管服务器上运行演示应用程序,则该空间中的数据库连接不是远程的。如果你使用本地数据库在本地运行它,那么也不是远程的。或者我误解了? ;-) – 2013-03-02 06:46:44

0

改变你的主机名从

$host = 'http://demo.phpmyadmin.net/STABLE/'; 

到原来的远程主机名状$host = 'ukld.db.5510597.hostedresource.com';

0

MySQL不工作在HTTP

012上
<?php 
$host = 'demo.phpmyadmin.net'; 
// High chances that this is NOT your mysql hostname. 
// It will not even by like /STABLE/ as you mentioned it. 
$dbname = 'shubham'; 
$user = 'root'; 
$pass = ''; 

// Attempt to connect to database. 
try { 
$DBH = new PDO("mysql:host={$host};dbname={$dbname}", $user, $pass); 
} catch(PDOException $e) { 
echo $e->getMessage(); 
} 
?>