【问题标题】:Connect to an external Mysql database连接到外部 Mysql 数据库
【发布时间】:2016-05-30 14:03:18
【问题描述】:

我在连接我的免费数据库时遇到问题。 我在 freesqldatabase.com 上创建了一个免费的 mysql 数据库,以尝试我的 php 脚本是否能完成他的工作。主要目的是将 html 表单中的数据(托管在不同的主机中,比如说 HOST A)插入到数据库中的表中(在 HOST B 中)。我试了很多次,但它说无法连接数据库。

这是错误:

Warning: mysqli_connect(): (HY000/2003): 
Can't connect to MySQL server on 'sql2.freesqldatabase.com' (110) 
in [HOST A]/core/try.php on line 6 ERROR: Could not connect. 
Can't connect to MySQL server on 'sql2.freesqldatabase.com' (110)

这是我的 PHP 脚本:

    <?php

$link = mysqli_connect("sql2.freesqldatabase.com", "user", "password", "database_name");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

// Attempt insert query execution
$sql = "INSERT INTO persons (person_id, first_name, last_name, email_address) VALUES (1, 'Peter', 'Parker', 'peterparker@mail.com')";
if(mysqli_query($link, $sql)){
    echo "Records added successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// Close connection
mysqli_close($link);
?>

这是我的简单 html 表单:

<form action="core/try.php" method="post" />

<p>Nome persona: <input type="text" name="person_id" /></p>
<p>nome <input type="text" name="first_name" /></p>

<p>cognome <input type="text" name="last_name" /></p>
<p>email <input type="text" name="email_address" /></p>

    <input type="submit" value="Submit" />

</form>

我做错了什么?!

【问题讨论】:

  • 删除您的原始数据库凭据。永远不要在任何网站上展示它。
  • @RaviHirani 在这里,OP 要求测试它是否是连接问题或其他问题,也许最好建议他/她在问题解决后更改凭据;)
  • 请在数据库中创建一个名为“persons”的表。
  • @flacle:他写了 mysqli_connect_error() 和 mysqli_error()。所以知道错误就足够了。
  • @RaviHirani 他没有提供实际错误,这是一个免费帐户,他明确提供了他的凭据以验证它是否真的是连接问题或其他问题。在某些情况下,可以显示凭据 IMO,但也许这确实违反了 terms of service?

标签: php mysql database mysqli


【解决方案1】:

您没有使用创建sql数据库时提供的密码和用户名,请从您的电子邮件中查看详细信息

【讨论】:

    【解决方案2】:

    从您提供的连接设置和代码看来,persons 表似乎不存在或丢失。我只能看到表tabella。我认为您必须首先创建表persons。使用您提供的代码连接到数据库本身是可行的。这是我得到的错误:

    ERROR: Could not able to execute INSERT INTO persons 
    (person_id, first_name, last_name, email_address) 
    VALUES (1, 'Peter', 'Parker', 'peterparker@mail.com'). 
    Table 'sql2107307.persons' doesn't exist
    

    【讨论】:

    • 好的,我已经修改成 $sql = "INSERT INTO tabella (person_id, first_name, last_name, email_address) VALUES (1, 'Peter', 'Parker', 'peterparker@mail.com' )";但它返回给我同样的错误:错误:无法连接。无法连接到“sql2.freesqldatabase.com”上的 MySQL 服务器 (110)
    • @user3042848 你能添加你从 PHP 日志中得到的错误吗?我仍然只看到 tabella 表,将代码中的 persons 更改为 tabella 适用于 INSERT 语句。
    • 错误是“警告:mysqli_connect(): (HY000/2003): Can't connect to MySQL server on 'sql2.freesqldatabase.com' (110) in [HOST A]/core/第 6 行的 try.php 错误:无法连接。无法连接到“sql2.freesqldatabase.com”上的 MySQL 服务器 (110)”。现在我已经创建了“persons”表,但仍然出现该错误。
    • @user3042848 嗯,你和服务器之间可能有一个设备阻止了你的连接。你能在那个服务器的 IP 地址上 telnet 到 3306 吗?
    • 我不知道,HOST A 是我的网站主机,我想我无法从它远程登录
    猜你喜欢
    • 2013-05-21
    • 1970-01-01
    • 2017-10-15
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多