我需要使用PHP连接到MySQL,但数据库在另一台主机上,我无法正确执行。
我正在使用此代码。错误在这一行:
$mysqli = new mysqli("hostex.lt","myInfo","pass","myInfoo");
“hostex.lt”。数据库在hostex.lt,phpMyAdmin:myadmin.hostex.lt我已经尝试了但它始终打印error:error:error:error:error:error:error:error:error:error:
此代码在我使用localhost的其他项目中工作,所以这里有问题。
for($i=1;$i<=10;$i++)
{
if ($stmt = $mysqli->prepare("INSERT into game (taskai, userName) VALUE (?,?) ")) {
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
// printf(" ", $mysqli->character_set_name());
}
$stmt->bind_param('ss', $score, $name);
// $stmt->bind_param("s", $username);
$stmt->execute();
if ($stmt->error != '') {
echo ' error:'.$stmt->error;
} else {
echo 'success';
}
$stmt->close();
} else {
echo 'error:'.$mysqli->error;
}
}
$mysqli->close();
?>
更新
我有这个错误:
答案 0 :(得分:0)
默认情况下,MySQL只允许从localhost访问,如果你想从不同的主机访问它,你必须明确允许它。
登录PHPMyAdmin,转到Privileges,添加用户'myDbName'@'www.ftpDomainName.lt'(@重要后的主机部分)并授予其访问数据库的权限。
如果您无法访问PHPMyAdmin中的“权限”部分,则必须联系数据库的主持人。
答案 1 :(得分:0)
这不太可能是PHP问题本身,但很可能是数据库服务器阻塞连接的东西。
按此顺序尝试以下操作,在每个步骤后运行代码:
新MySQL用户
数据库服务器
在数据库服务器上请求sysadmin编辑/etc/mysql/my.cnf(假设这是一台将my.cnf存储在此位置的Linux机器 - 您的sysadmin将知道如何找到正确的文件)。
<强>防火墙强>
如果上述步骤无效,则很可能是防火墙阻止连接。
请注意,如果MySQL服务器的系统管理员不想打开防火墙上的端口或启用与数据库的外部连接,那么您可以做很多事情