Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 连接到远程mysql服务器_Php_Mysql_Phpmyadmin_Connection - Fatal编程技术网

Php 连接到远程mysql服务器

Php 连接到远程mysql服务器,php,mysql,phpmyadmin,connection,Php,Mysql,Phpmyadmin,Connection,如何在php中连接到?我的代码看起来像这样 <?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(PDOEx

如何在php中连接到?我的代码看起来像这样

<?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();
}
?>

将主机名从

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

到原始远程主机名,如eg
$host='ukld.db.5510597.hostedresource.com'

MySQL不能在HTTP上工作

<?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();
}
?>

您似乎混淆了两件事:

  • 演示phpMyAdmin前端,由db服务器和db/schema支持
  • 数据库服务器和模式本身
PDO需要后者,即db服务器本身


在查看演示的前端代码时,我没有看到任何能够提供db服务器实际连接详细信息的内容。这正是我所期望的:我发现很难相信phpMyAdmin演示的制造商/维护者会将他们的实际db服务器用于公共远程连接。

有两件事:1)服务器是否在默认端口上运行?2) 除非您想查看PhpMyAdmin,否则无法通过HTTP连接。谢谢您的更正。是否有可用于公共远程连接的数据库服务器?我只想展示一个例子。通常,您会在自己的托管基础设施上配置自己的db服务器。根据我的经验,大多数共享主机不接受远程连接;它们仅限制从宿主环境中连接到客户端。使用虚拟专用服务器(VPS)托管通常是一种方式。我用过ServerGrove,很高兴。但是你确定你真的需要远程连接吗?如果在现有主机上运行演示应用程序,则该空间中的db连接不是远程的。如果使用本地数据库在本地运行,那么也不是远程运行。还是我误会了?;-)
<?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();
}
?>