第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用 OOP 準(zhǔn)備語句的 PHP 錯(cuò)誤

使用 OOP 準(zhǔn)備語句的 PHP 錯(cuò)誤

PHP
慕俠2389804 2023-05-26 14:23:43
當(dāng)我嘗試在我的項(xiàng)目中實(shí)現(xiàn)代碼時(shí)出現(xiàn)錯(cuò)誤。我的代碼://In file with class 'Article'.public function deleteArticle($id) {? ? ?$conn = $this->connect();? ? ?$sql = "UPDATE article SET deleted=1 WHERE row_id=?";? ? ?$stmt = $conn->prepare($sql);? ? ?$stmt->bind_param("i", $id);? ? ?$stmt->execute();? ? ?$result = $stmt->get_result();? ? ?return $result;}//In file with class 'DBConn'.public function connect() {? ?$conn = new mysqli('localhost', 'root', '','nicms');? ?if ($conn->connect_error) {? ? ? die("Connection failed: " . $conn->connect_error);? ?}? ?return $conn;}//In file with class 'articleContr'.public function showDeleteArticle($id) {? ?if ($this->deleteArticle($id)? ? ? ?echo "Article has successfully been deleted.";? ?else?? ? ?echo "Failed to delete article.";}錯(cuò)誤是文章確實(shí)被刪除了,但是 showDeleteArticle 方法給出了消息“無法刪除文章”。盡管文章已被刪除。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

錯(cuò)誤是您返回一個(gè) $result,這僅在使用 select 語句時(shí)有效。但是在插入、更新、刪除時(shí)不需要 $result,$result 不是布爾值,這就是它在 if 語句中不起作用的原因。您應(yīng)該返回 $stmt 因?yàn)椴⒃?if 語句中檢查


將您的代碼更改為此,它應(yīng)該可以工作:


    protected function unSetArticle($id) {

        $conn = $this->connect();

        $sql = "UPDATE article SET deleted=1 WHERE row_id=?";

        $stmt = $conn->prepare($sql);

        $stmt->bind_param("i", $id);

        $stmt->execute();

        return $stmt;

    }//Method unSetArticle.


查看完整回答
反對(duì) 回復(fù) 2023-05-26
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

這段代碼在很多層面上都是錯(cuò)誤的,但主要問題是方法 showDeleteArticle() 是錯(cuò)誤的并且具有誤導(dǎo)性。

這種方法根本沒有理由。另一個(gè)答案被接受的事實(shí)證明了這一點(diǎn)。提供的代碼總是返回類似true的值,因此 showDeleteArticle() 中的條件變得無用??梢詫⑵渲貙憺?/p>

public?function?showDeleteArticle($id)?{
????echo?"Article?has?successfully?been?deleted.";
}

因?yàn)樗肋h(yuǎn)不會(huì)進(jìn)入 else 部分。

更不用說任何控制器都不應(yīng)該直接脫口而出任何數(shù)據(jù),而不是通過視圖。至少在 POST 請(qǐng)求之后必須有重定向,而不是輸出。


查看完整回答
反對(duì) 回復(fù) 2023-05-26
  • 2 回答
  • 0 關(guān)注
  • 181 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)