当我在php中执行查询时,我得到:致命错误:未捕获错误:调用bool中的成员函数close()
我正在学习一门关于php和mysql的课程,并且有一项关于CRUD的任务。 当我执行查询以删除表和相关表的内容时 一切正常,但我得到: 致命错误:未捕获错误:调用bool上的成员函数close() 在里面 /Applications/XAMPP/xamppfiles/htdocs/LOI/hoofdstuk10/opgive/schoon.php:10 堆栈跟踪:#0{main}已抛出 /Applications/XAMPP/xamppfiles/htdocs/LOI/hoofdstuk10/opgive/schoon.php 第10行 有什么不对劲吗? 这是一个非常简单的文档,所以可能在sql文档中当我在php中执行查询时,我得到:致命错误:未捕获错误:调用bool中的成员函数close(),php,mysql,Php,Mysql,我正在学习一门关于php和mysql的课程,并且有一项关于CRUD的任务。 当我执行查询以删除表和相关表的内容时 一切正常,但我得到: 致命错误:未捕获错误:调用bool上的成员函数close() 在里面 /Applications/XAMPP/xamppfiles/htdocs/LOI/hoofdstuk10/opgive/schoon.php:10 堆栈跟踪:#0{main}已抛出 /Applications/XAMPP/xamppfiles/htdocs/LOI/hoofdstuk10/o
<?php
require_once 'login.php';
$query = "DELETE FROM Lid";
$result = $conn->query($query);
if (!$result) die ('DELETE failed');
$result->close();
$conn->close();
?>
mysqli查询返回true 失败时返回FALSE。为了成功地选择、显示、描述或解释查询,mysqli_query()将返回一个mysqli_结果对象对于其他成功的查询,mysqli_query()将返回TRUE 您的请求没有返回任何数据,这就是为什么您收到true 只需删除此行:
$result->close();
@NigelRen。此行检查请求的错误,以防返回false。在上面的代码中,它工作正常并返回true。但它仍然是一个布尔值。没有必要关闭它。@mickmackusa你读过这个问题了吗?这种欺骗接近没有任何意义。@Paul我没有注意到OP试图释放一个从未有过的结果集。我的观点是,有条件的die()
是不准确的——语法错误检查只是成功删除的指标的一半。
CREATE TABLE Postcodes (
postcode CHAR(6) NOT NULL,
straat VARCHAR(60) NOT NULL,
woonplaats VARCHAR(60) NOT NULL,
PRIMARY KEY (postcode));
CREATE TABLE Lid (
lidnummer INT NOT NULL AUTO_INCREMENT,
naam VARCHAR(30) NOT NULL,
voornaam VARCHAR(30) NOT NULL,
postcode CHAR(6) NOT NULL,
huisnummer VARCHAR(10) NOT NULL,
PRIMARY KEY (lidnummer),
CONSTRAINT FK_postcode FOREIGN KEY (postcode)
REFERENCES Postcodes(postcode));
CREATE TABLE email (
lidnummer INT NOT NULL,
emailadres VARCHAR(60),
PRIMARY KEY (emailadres),
CONSTRAINT FK_email FOREIGN KEY (lidnummer)
REFERENCES Lid(lidnummer) ON DELETE CASCADE);
CREATE TABLE Telefoonnummers (
lidnummer INT NOT NULL,
telefoonnummer VARCHAR(60),
PRIMARY KEY (telefoonnummer),
CONSTRAINT FK_telefoonnummer FOREIGN KEY (lidnummer)
REFERENCES Lid(lidnummer) ON DELETE CASCADE);
INSERT INTO Postcodes(postcode, straat, woonplaats)
VALUES('3333AA', 'van Goghsingel', 'Amsterdam'),
('4444BB', 'Rembrandtlaan', 'Rotterdam'),
('5555CC', 'Mondriaanstraat', 'Den Haag');
INSERT INTO Lid(lidnummer, naam, voornaam, postcode, huisnummer)
VALUES(1, 'Jansen', 'Jan', '3333AA', '10'),
(2, 'Pietersen', 'Piet', '4444BB', '20'),
(3, 'Klaassen', 'Klaas', '5555CC', '30');
INSERT INTO email(lidnummer, emailadres)
VALUES((SELECT lidnummer FROM Lid WHERE postcode = '3333AA' AND huisnummer = '10'), 'jan@gmail.com'),
((SELECT lidnummer FROM Lid WHERE postcode = '4444BB' AND huisnummer = '20'), 'piet@gmail.com'),
((SELECT lidnummer FROM Lid WHERE postcode = '5555CC' AND huisnummer = '30'), 'klaas@gmail.com');
INSERT INTO Telefoonnummers(lidnummer, telefoonnummer)
VALUES((SELECT lidnummer FROM Lid WHERE postcode = '3333AA' AND huisnummer = '10'), '0655554444'),
((SELECT lidnummer FROM Lid WHERE postcode = '4444BB' AND huisnummer = '20'), '0632323232'),
((SELECT lidnummer FROM Lid WHERE postcode = '5555CC' AND huisnummer = '30'), '0612345678');