我有这个问题。我正在尝试连接到数据库并推送文本用户。当我打开文件时,我只会得到很多错误。您可以看到错误和我的代码。仅供参考:我的数据库位于MySQLi
警告:mysqli :: __ construct():php_network_getaddresses:getaddrinfo 失败:提供了主机名或服务名,或者在 / www / webvol9 / rj / fxgnq6r66hz6x2j / 我 域 /public_html/action_page.php,第3行
警告:mysqli :: __ construct():(HY000 / 2002): php_network_getaddresses:getaddrinfo失败:主机名或servname 提供,或在/ www / webvol9 / rj / fxgnq6r66hz6x2j / my中未知 域 /public_html/action_page.php,第3行
注意:未定义的变量:在 / www / webvol9 / rj / fxgnq6r66hz6x2j / 我 域 /public_html/action_page.php,第7行
警告:mysqli :: prepare():无法在以下位置获取mysqli / www / webvol9 / rj / fxgnq6r66hz6x2j / 我 域 /public_html/action_page.php,第7行
致命错误:未捕获错误:调用成员函数execute() / www / webvol9 / rj / fxgnq6r66hz6x2j / my中为null 域 /public_html/action_page.php:8堆栈跟踪:#0 {main}被抛出 / www / webvol9 / rj / fxgnq6r66hz6x2j / 我 域 /public_html/action_page.php,第8行
<?php
// Create connection
$mysqli = new mysqli("https://mysql687.loopia.se", "USERNAME", "PASSWORD", "People");
$query = "INSERT INTO 'People' ('Name', 'Password', 'Username') VALUES ('Emil', 'hejhej', 'emil')";
$stmt = $mysqli->prepare($query);
$stmt->execute();
$mysqli->close();
$stmt->close();
?>
答案 0 :(得分:0)
首先使用适当的凭据连接到数据库。不要在表中引用表名和列名
$query = "INSERT INTO People (Name, Password, Username) VALUES ('Emil', 'hejhej', 'emil')";
$stmt->close();
应该先于$mysqli->close();
。
答案 1 :(得分:0)
这里有很多个错误
警告:mysqli :: __ construct():php_network_getaddresses:getaddrinfo 失败:提供了主机名或servname,或者在...
中未知警告:mysqli :: __ construct():(HY000 / 2002): php_network_getaddresses:getaddrinfo失败:主机名或servname 提供...,或在...中未知...
是因为在将https://放在域前面时,您通过端口443与数据库连接。
端口扫描器和端口443均已关闭,默认的mySQL端口3306已打开,因此只需输入mysql687.loopia.se
而不使用https://
注意:未定义的变量:在...中查询
将表列的单引号替换为反引号或无反引号:
$query = "INSERT INTO `People` (`Name`, `Password`, `Username`) VALUES ('Emil', 'hejhej', 'emil')";
在数据库连接之前也要先关闭语句(也仅在脚本结束时才关闭数据库连接。并非每次都运行查询)。
$stmt = null;
$mysqli = null;