当前位置: 首页 > 知识库问答 >
问题:

MySQL停止工作是因为获取问题

澹台正真
2023-03-14

我刚刚回到一个月前运作良好的项目。今天我发现我收到一个“警告:mysqli::query():无法获取mysqli”错误,我不知道为什么。我已尝试更改if语句,但仍然得到相同的结果。

php页面

<?php
include_once 'db_connect.php';
include_once 'functions.php';

sec_session_start();

error_reporting(E_ALL); ini_set('display_errors', 1);

$email = $_SESSION['email'];
$name = $_SESSION['name'];
$hash = $_SESSION['hash'];

$password = $hash;

echo $name;
echo '<br>';
echo $email;
echo '<br>';
echo $hash;
echo '<br>';

$sql = "INSERT INTO signed_up(`name`, `email`, `password`) VALUES ('$name', '$email', '$password')";

if ($mysqli->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $mysqli->error;
}
//if ($result = $mysqli->query("INSERT INTO `signed_up`(`name`, `email`, `password`) VALUES ('$name', '$email', '$password')")){
//
//header('location: ../register_success.php');
////  $result->close();
//
//}
//else {
//  echo "error";
//}
?>

我得到的错误

您已成功连接到数据库

gptgeoff

up666315@myport.ac.uk

$2y10$JUi/eSNwbTnM4ZyWetEL6.ELSepLPKLkEiJdi4WYMyp/sEEAk9hKE

警告:mysqli::查询():无法在第24行的 /home/sites/unitest.co.uk/public_html/includes/register_user.inc.php中获取mysqli警告:main():无法在第27行的 /home/sites/unitest.co.uk/public_html/includes/register_user.inc.php中获取mysqli错误:插入signed_up(name电子邮件密码)VALUES('gptgeoff','up666315@myport.ac.uk','$2y10$JUi/eSNwbTnM4ZyWetEL6.ELSepLPKLkEiJdi4WYMyp/sEEAk9hKE')

db_connect.php文件工作,因为我得到了"你已成功连接到数据库"显示,会话变量正在传递和回声在这两个回声语句和$sql查询的值,所以我无法理解为什么这已经停止工作,有人能建议请

db_connect.php

<?php
include_once 'psl-config.php';   // As functions.php is not included
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);

if(!$mysqli)  {
die('error connecting to database');    
}
echo 'you have succesfuly connected to the database'.'<br/><br/>';

?>

共有1个答案

郜杰
2023-03-14

这一行:

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);

创建一个对象。它是类mysqli的实例。对象总是真实的。if语句检查$mysqli是否为false。这个if语句是错误的,因为无论连接是否成功,对象都不会是错误的。

不要手动检查连接错误。您的连接失败了,当它失败时,PHP抛出了一个警告。请检查您的PHP配置是否有错误报告,因为您可能有警告静音。也请启用mysqli错误报告。在创建mysqli实例之前插入此行。

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
 类似资料:
  • null GrantPermissionRule是否停止了为其他人所宣传的工作?

  • 我正在用Unity 2018.2.2(最新版本于2018年8月8日)开发一款android小游戏。我在这个游戏上工作了几周,但现在,Unity在试图找到我的JDK时毫无理由地失败了。当我分配文件夹时(编辑- [如果您看不到图像:“未能检测到Java版本。Android开发需要JDK 8(1.8)。安装JavaRunatime环境(JRE)是不够的。”] 第一个我想的是,它可能会因为JDK的更新而失

  • 我正在通过conda安装pymc,它告诉我更新一些文件,所以没有问题。然而,在更新后,它给出了一个OSError,现在,我不能访问任何conda构建命令。现在,当我键入任何conda命令时,它会给我

  • 我使用dropbox下载文件API,我得到了一个令牌,但它返回400错误请求错误”调用API函数时出错”文件/下载”:必须提供HTTP标头“授权”或URL参数“授权” 我遵循dropbox api文档,但它无法工作~“”~如何修复它? 这是我的代码(angular2)

  • 问题内容: 几天前使用时,它已经正常工作了。 但是现在不起作用了。而且我不知道问题出在哪里。 它显示“邮件已发送”。 我没有碰过Apache或这段代码中的任何内容。我已经在空PHP文件中测试了代码,结果相同。如何调试此问题? 问题答案: 可能是电子邮件发送正常,但被垃圾邮件过滤器捕获了吗?如果可以的话,请允许我交叉发表自己的看法: 一些要点(假设mail()返回true,并且错误日志中没有错误):

  • 问题内容: 我试图用ui-bootstrap制作一个用于angularjs的轮播,我基本上直接从angular文档复制/粘贴了它,但是它在最后一张幻灯片上停止了工作。 它不会重新开始,并且控件停止工作,即在控制台上没有出现任何错误,只是停止了工作 编辑:我再次检查,它不会停止在最后一张幻灯片,实际上它停止在第二个,无论有多少个元素。 编辑:我只是用轮播制作了一个测试站点,但仍然无法正常工作 这是完