在php中连接外部数据库

时间:2013-10-05 06:43:00

标签: google-app-engine

我是php和Google-app引擎的初学者。我已经创建了一个php网页,我只需要连接到外部MySQL数据库来记录用户访问统计数据。 在stats.php下,我include("config.php");如何config.php如何连接:

<?php
// change these variables 
$host=("example.com");  //host
$uname="abc";//MySQL username
$pass="Abc@123";//MySQL password
$db="stats"; //MySQL Database
//don't need to change
$con = mysql_connect($host,$uname,$pass);
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db($db, $con);
?>

当我运行stats.php时,我在appspot.com上收到以下错误

Failed to connect to MySQL: Unable to find the socket transport "tcp" - did you forget to enable it when you configured PHP? 

我还确认从外部主机连接到我的服务器,port 3306也已打开。

$ mysql -u webadmin –h (server ip) –p

我没有正确使用获取网址的方法,请帮忙。 感谢。

3 个答案:

答案 0 :(得分:4)

不幸的是,这还不行。原因是App Engine PHP运行时当前不支持套接字。其他App Engine运行时(Python / Java / Go)支持套接字,因此可以肯定它将在未来的某个时候添加到PHP中。

答案 1 :(得分:0)

$host="example.com";     // should contain a valid host name or an ip address of the mysql server to which you want to connect

只有在需要时才需要更改其他内容,用户名和密码。您必须确保远程数据库允许该用户名的外部连接。此外,您最好使用mysqli_*而不是旧的已弃用的mysql_*扩展名。

$link = mysqli_connect($host,$uname,$pass,$db) or die("Error " . mysqli_error($link));

在stats.php下,您可以按照您已经提到的方式简单地包含任何代码文件:

<?php
include("config.php");
?>

答案 2 :(得分:0)

$con = mysql_connect('your_my_sql_servername or IP Address', 'new_user_which_u_created', 'password');
if (!$con) {
    die('Could not connect: ' . mysql_error());
}

echo 'Connected successfully';

mysql_select_db('sandsbtob',$con) or die ("could not open db".mysql_error());

并且服务器的防火墙必须设置为启用端口3306上的连接

希望这会对你有所帮助