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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

語法錯誤。(綁定值?

語法錯誤。(綁定值?

PHP
蝴蝶刀刀 2022-09-17 21:30:54
我正在嘗試創(chuàng)建一個更新查詢,并且我正在將一些設(shè)置的內(nèi)容循環(huán)到一個名為$str的var中,我似乎無法使其正常工作。       if (is_numeric($id)) {           if (!empty($values) && !empty($table_name)) {               $str = '';               $sql = "UPDATE `$table_name` SET :update_values WHERE `$column_name` = :id";               // Its one because we dont use ID like that               $i = 1;               foreach ($values as $key => $value) {                   if ($key != $column_name) {                       // Exclude the last one from having a comma at the end                       if ($i == count($values) - 1) {                           $str .= "$key='" . $value . "'";                       } else {                           $str .= "$key='" . $value . "', ";                           $i++;                       }                   }               }               $query = $this->dbh->prepare($sql);               $query->bindValue('update_values', $str, PDO::PARAM_STR);               $query->bindValue(':id', $id, PDO::PARAM_INT);               $query->execute();               return true;             } else {               return false;           }       } else{           return false;       }   }輸出:致命錯誤: 未捕獲的 PDO異常: SQLSTATE[42000]: 語法錯誤或訪問沖突: 1064 您的 SQL 語法中存在錯誤;檢查與您的 MariaDB 服務(wù)器版本對應(yīng)的手冊,了解在第 1 行note_name=\'yeet'附近使用的正確語法,note_date=\'2020-02-20\',note_desc=\'asdasdadsdadsdasdad我是否犯了任何明顯的錯誤?同樣,對于我的生活,我不知道值前面的反斜杠是什么意思。
查看完整描述

1 回答

?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊

在MySQL中,標(biāo)識符不能作為值提供。


對列的引用必須出現(xiàn)在 SQL 語句的文本中,它們不能通過綁定參數(shù)提供。這適用于表名、列名、函數(shù)名。


沒有解決方法;這是一個設(shè)計限制。這有幾個原因。最直接的原因之一是了解SQL語句的準(zhǔn)備方式,提出執(zhí)行計劃所需的信息,表和列必須在準(zhǔn)備時知道(用于語義檢查和特權(quán)檢查)。實際值可以推遲到執(zhí)行時間。


綁定占位符用于提供值,而不是標(biāo)識符。


通過給定的代碼,MySQL看到的是沿著以下路線的東西


 UPDATE `mytable` SET 'a string value' WHERE `id_col` = 42

而我的學(xué)習(xí)進(jìn)度正在猶豫不決。'a string value'


我們可以(也應(yīng)該)對值使用綁定參數(shù)。


我們可以動態(tài)生成如下所示的 SQL 文本:


    UPDATE `mytable`

       SET `col_one` = :val1

         , `col_two` = :val2

     WHERE `id_col` = :id 

在將SQL文本準(zhǔn)備到語句中后,我們可以綁定值:


         $sth->bindValue(':val1', $value_one , PDO::PARAM_STR );

         $sth->bindValue(':val2', $value_two , PDO::PARAM_STR );

         $sth->bindValue(':id'  , $id        , PDO::PARAM_INT );

然后執(zhí)行


查看完整回答
反對 回復(fù) 2022-09-17
  • 1 回答
  • 0 關(guān)注
  • 103 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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