我有这个问题。我试图连接到一个数据库,并推动一个文本用户。当我打开文件时,我只会得到很多错误。您可以更深入地看到错误和我的代码。我的数据库在MySQLi中
警告: mysqli::__construct():php_network_getaddresses: getaddrinfo失败:主机名或提供的服务名,或在第3行的/www/webvol9/rj/fxgnq6r66hz6x2j/my域/public_html/action_page.php中不知道 警告: mysqli::__construct():(HY000/2002):php_network_getaddresses: getaddrinfo失败:主机名或提供的服务名,或在第3行的/www/webvol9/rj/fxgnq6r66hz6x2j/my域/public_html/action_page.php中不知道 注意:未定义变量:第7行中/www/webvol9/rj/fxgnq6r66hz6x2j/my域/public_html/action_page.php中的查询 警告: mysqli::prepare():无法在第7行的/www/webvol9/rj/fxgnq6r66hz6x2j/my域/public_html/action_page.php中获取mysqli 致命错误:在/www/webvol9/rj/fxgnq6r66hz6x2j/my域/public_html/action_page.php中调用成员函数execute():8堆栈跟踪:在/www/webvol9/rj/fxgnq6r66hz6x2j/my域/public_html/action_page.php行中抛出#0 {main}
<?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();
?>发布于 2018-07-17 13:15:18
首先,使用适当的凭据连接到数据库。不要引用表名和列名
$query = "INSERT INTO People (Name, Password, Username) VALUES ('Emil', 'hejhej', 'emil')";$stmt->close();应该先于$mysqli->close();。
发布于 2018-07-17 13:16:58
这里有一个的bug
警告: mysqli::__construct():php_network_getaddresses: getaddrinfo失败:主机名或提供的服务名,或在.中不知道 警告: mysqli::__construct():(HY000/2002):php_network_getaddresses: getaddrinfo失败:主机名或服务名提供,或在.中不知道
是因为当您将https://放在域前面时,通过端口443连接数据库。
刚刚完成了端口扫描程序,端口443关闭了,默认的mySQL端口3306是打开的,所以只需输入mysql687.loopia.se而不使用https://。


注意:未定义变量:查询在.中
将表列的单引号替换为backticks或none:
$query = "INSERT INTO `People` (`Name`, `Password`, `Username`) VALUES ('Emil', 'hejhej', 'emil')";也可以在数据库连接之前关闭语句(也只在脚本结束时关闭数据库连接。(不是每次运行查询时都是这样。
$stmt = null;
$mysqli = null;https://stackoverflow.com/questions/51382184
复制相似问题