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

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

沒(méi)有插入數(shù)據(jù),查詢(xún)執(zhí)行似乎沒(méi)有運(yùn)行

沒(méi)有插入數(shù)據(jù),查詢(xún)執(zhí)行似乎沒(méi)有運(yùn)行

PHP
LEATH 2023-03-26 13:52:46
我有一個(gè)收集數(shù)據(jù)并將其放入對(duì)象的函數(shù)。然后它將此對(duì)象轉(zhuǎn)換為 json 字符串,并將其放入表中。完成它大約需要 30 秒。現(xiàn)在,這個(gè) json 字符串相當(dāng)大(大約 36mb 左右)。但是當(dāng)我執(zhí)行查詢(xún)時(shí),表中沒(méi)有任何內(nèi)容,我也沒(méi)有收到任何錯(cuò)誤。所以我做了一些調(diào)試,現(xiàn)在的代碼是這樣的:function __construct($total, $allActions, $employees, $branches, $companies, $departments, $lastUpdated, $update = false)    {        echo "Made it to constructor. Update: ".json_encode($update);        global $conn;        $this->Total = $total;        $this->AllActions = $allActions;        $this->Employees = $employees;        $this->Branches = $branches;        $this->Companies = $companies;        $this->Departments = $departments;        $this->LastUpdated = $lastUpdated;        if($update) {            try {                $query = $conn->prepare("INSERT INTO actionplansummarydata_new (json, last_updated) VALUES (?, ?)");                echo "Prepared query.";                if($query->bind_param('ss', json_encode($this), $this->LastUpdated->format("Y-m-d H:i:s"))) {                    echo "Bound parameters.";                    if ($query->execute()) {                        echo "Executed query.";                    } else {                        echo "Error inserting summary: " . $query->error;                    }                } else {                    echo "Error binding query: " . $query->error;                }            } catch(Exception $ex) {                echo "Exception: ".$ex->getMessage();            }        }    }現(xiàn)在,當(dāng)它被執(zhí)行時(shí),這是我在頁(yè)面上得到的響應(yīng):讓它成為構(gòu)造函數(shù)。更新:truePrepared query.Bound 參數(shù)。但是我這里有一個(gè) if 語(yǔ)句:            if ($query->execute()) {                echo "Executed query.";            } else {                echo "Error inserting summary: " . $query->error;            }這些都沒(méi)有回顯到頁(yè)面,我也沒(méi)有得到任何異常。我完全不知所措。服務(wù)器是MariaDB 10.4,json數(shù)據(jù)庫(kù)中的字段是longtext,所以應(yīng)該可以存儲(chǔ)。
查看完整描述

4 回答

?
湖上湖

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

如果您的錯(cuò)誤報(bào)告是在 E_ALL,您不應(yīng)該在查詢(xún)執(zhí)行時(shí)面臨靜默失敗......無(wú)論如何,首先,一些步驟可以解決故障點(diǎn)。

移出json_encode($this)綁定,分配給一個(gè)變量,然后var_dump查看您實(shí)際向綁定器提供的內(nèi)容。也是如此$this->LastUpdated->format;?假設(shè)它是一個(gè) DateTime 對(duì)象,但誰(shuí)知道呢。當(dāng)失敗點(diǎn)在條件語(yǔ)句之外時(shí)更容易調(diào)試。

如果您改為插入虛擬數(shù)據(jù)字符串,您能否確認(rèn)它是否按預(yù)期工作?例如:

if($query->bind_param('ss',?'{}',?'2020-05-19?01:01:01'));?{

這里的一個(gè)問(wèn)題是bind_param通過(guò)引用而不是值來(lái)綁定變量。因此,您不能為其提供功能。您必須將值分配給變量,然后才綁定它們(因?yàn)楹瘮?shù)不返回可用的引用)。意思是,改為:

$json = json_encode($this);

$updated = $this->LastUpdated->format("Y-m-d H:i:s");

if($query->bind_param('ss', $json, $updated)) {

您可以將綁定結(jié)果 (true/false) 分配給一個(gè)變量,然后var_dump.?(我們不想var_dump從條件語(yǔ)句內(nèi)部,對(duì)嗎?)由于上述原因,綁定將失敗 === false。同樣,var_dump準(zhǔn)備好的查詢(xún)確保它成功,跟蹤每個(gè)步驟。

數(shù)據(jù)庫(kù)引擎運(yùn)行可能會(huì)觸發(fā)致命錯(cuò)誤,這很可能與插入查詢(xún)的大小有關(guān)。您可能需要查看 MariaDB 錯(cuò)誤日志以獲取更多線(xiàn)索,以防您在某處遇到限制。我猜想max_allowed_packet,默認(rèn) 16MB,你已經(jīng)完成了。(另見(jiàn)mysqli_stmt::send_long_data以塊形式發(fā)送長(zhǎng)數(shù)據(jù)。)

在其他問(wèn)題中,json是 MySQL 8.0 中的保留字(未針對(duì) Maria 10.4 列出??。?。您可能希望重命名該列以確保它不會(huì)成為問(wèn)題(即使它在這里有效)。

就這種情況的可能性而言,您所描述的內(nèi)容(if/else 沒(méi)有輸出)只有在從未顯示過(guò)的致命錯(cuò)誤觸發(fā)時(shí)才有意義$query->execute()。除非在某些 MySQL 故障的 PHP 錯(cuò)誤報(bào)告中存在錯(cuò)誤。對(duì)您的 PHP 錯(cuò)誤報(bào)告配置進(jìn)行三次檢查,包括 code/.htaccess 中可能覆蓋 php.ini 的任何地方。


查看完整回答
反對(duì) 回復(fù) 2023-03-26
?
白衣染霜花

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

檢查設(shè)置max_allowed_packet;這可能會(huì)阻止你。設(shè)置為 1G。

如果這不起作用,則可能存在超時(shí)問(wèn)題或其他一些大小限制。

對(duì)于大文本字符串,我有時(shí)喜歡壓縮它們,并將字符串存儲(chǔ)到一個(gè)MEDIUMBLOB.


查看完整回答
反對(duì) 回復(fù) 2023-03-26
?
肥皂起泡泡

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

您使用什么數(shù)據(jù)類(lèi)型來(lái)存儲(chǔ) 36MB 的 JSON 字符串?您可能需要將數(shù)據(jù)類(lèi)型更改為最多可存儲(chǔ) 4GB 數(shù)據(jù)的 LONGTEXT 或最多可存儲(chǔ) 1GB 數(shù)據(jù)的 JSON 數(shù)據(jù)類(lèi)型

或者

您可以將其單獨(dú)存儲(chǔ)為表中的列,并在需要時(shí)在您的代碼中將其更改回 JSON


查看完整回答
反對(duì) 回復(fù) 2023-03-26
?
Cats萌萌

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

嘗試檢查是否準(zhǔn)備好


 if($query = $conn->prepare("INSERT INTO actionplansummarydata_new (json, last_updated) VALUES (?, ?)")){

        $query->bind_param('ss', json_encode($this), $this->LastUpdated->format("Y-m-d H:i:s"));

        if($query->execute()){

            // code here

        }


}


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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