当我尝试使用php连接到数据库时出现很多错误

时间:2018-07-17 13:06:16

标签: php mysql mysqli

我有这个问题。我正在尝试连接到数据库并推送文本用户。当我打开文件时,我只会得到很多错误。您可以看到错误和我的代码。仅供参考:我的数据库位于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();
?>

2 个答案:

答案 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://

port 3306 port 443

  

注意:未定义的变量:在...中查询

将表列的单引号替换为反引号或无反引号:

$query = "INSERT INTO `People` (`Name`, `Password`, `Username`) VALUES ('Emil', 'hejhej', 'emil')";

在数据库连接之前也要先关闭语句(也仅在脚本结束时才关闭数据库连接。并非每次都运行查询)。

$stmt = null;
$mysqli = null;