久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

    <i id='pLudt'><tr id='pLudt'><dt id='pLudt'><q id='pLudt'><span id='pLudt'><b id='pLudt'><form id='pLudt'><ins id='pLudt'></ins><ul id='pLudt'></ul><sub id='pLudt'></sub></form><legend id='pLudt'></legend><bdo id='pLudt'><pre id='pLudt'><center id='pLudt'></center></pre></bdo></b><th id='pLudt'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='pLudt'><tfoot id='pLudt'></tfoot><dl id='pLudt'><fieldset id='pLudt'></fieldset></dl></div>

        <small id='pLudt'></small><noframes id='pLudt'>

          <bdo id='pLudt'></bdo><ul id='pLudt'></ul>
        <legend id='pLudt'><style id='pLudt'><dir id='pLudt'><q id='pLudt'></q></dir></style></legend>

        <tfoot id='pLudt'></tfoot>

      1. PHP PDO 準備好的語句查詢不更新記錄

        PHP PDO Prepared statement query not updating record(PHP PDO 準備好的語句查詢不更新記錄)

          1. <i id='fahVf'><tr id='fahVf'><dt id='fahVf'><q id='fahVf'><span id='fahVf'><b id='fahVf'><form id='fahVf'><ins id='fahVf'></ins><ul id='fahVf'></ul><sub id='fahVf'></sub></form><legend id='fahVf'></legend><bdo id='fahVf'><pre id='fahVf'><center id='fahVf'></center></pre></bdo></b><th id='fahVf'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='fahVf'><tfoot id='fahVf'></tfoot><dl id='fahVf'><fieldset id='fahVf'></fieldset></dl></div>

            <small id='fahVf'></small><noframes id='fahVf'>

          2. <tfoot id='fahVf'></tfoot>
              • <bdo id='fahVf'></bdo><ul id='fahVf'></ul>
                <legend id='fahVf'><style id='fahVf'><dir id='fahVf'><q id='fahVf'></q></dir></style></legend>
                    <tbody id='fahVf'></tbody>

                  本文介紹了PHP PDO 準備好的語句查詢不更新記錄的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我在使用 PHP 的 PDO 對象準備更新語句和更新記錄時遇到問題.我已經獲取了原始 SQL 查詢并在 phpMyAdmin 中運行它,參數被傳遞給函數的值替換.它按預期更新記錄.但是,從腳本運行時,它不會更新.它拋出零錯誤并返回 00000 的 errorInfo() 回復,據我所知,這是 PDO 表示一切正常的方式.我知道 PDO 對象有效,因為它成功地從數據庫中插入和選擇記錄,包括我試圖更新的記錄.我知道這個更新功能很丑,我只是在學習 PDO.

                  顯然,這是用 PHP5 編碼的,使用 PDO.

                  類函數:

                  公共函數更新($tbl_name, $where = null, $what = null){if(is_array($w??here)){$where_str = '哪里';foreach($where as $key => $val){$where_str .= "{$key} = ':{$key}' 和 ";}$where_str = substr($where_str,0,-5);$what_str = '設置';foreach($what as $key => $val){$what_str .= "`{$key}` = ':{$key}', ";}$what_str = substr($what_str,0,-2);$query_str = "更新 {$tbl_name} {$what_str} {$where_str} LIMIT 1;";$stmt = $this->dbh->prepare($query_str);echo '<pre>'.print_r($stmt, true).'</pre>';foreach($what as $key => $val){if('date_time' === $key) 繼續;$bind = $stmt->bindValue(":{$key}",$val);echo ($bind ? 'true' : 'false')." :{$key}=",$val,'<br/>';}foreach($where as $key => $val){if('date_time' === $key) 繼續;$bind = $stmt->bindValue(":{$key}",$val);echo ($bind ? 'true' : 'false')." :{$key} ",$val,'<br/>';}}別的{返回假;}$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);$exec = $stmt->execute();echo 'exec: '.($exec === true ? 'true:' : 'false:').':'.$exec.'<br/>';echo '

                  ';$stmt->debugDumpParams();echo '</pre>';返回 $stmt->errorInfo();}

                  從會話更新/登錄腳本調用:

                  $where = array('id' =>$user['id'],);$what = 數組('twitter_key' =>$oauth_token,'twitter_secret' =>$oauth_token_secret);$update = $db->update('users', $where, $what);

                  類函數和調用者中 echos 和 print_r 的輸出:

                  //print_r($stmt = $this->dbh->prepare($query_str)) 輸出:PDO 語句對象([查詢字符串] =>更新用戶設置`twitter_key` = ':twitter_key', `twitter_secret` = ':twitter_secret' where id = ':id' LIMIT 1;)//bing 參數的輸出和執行返回真:twitter_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX真:twitter_secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX真:ID 20執行:真:1//$stmt->debugDumpParams() 輸出:SQL: [111] 更新用戶設置`twitter_key` = ':twitter_key', `twitter_secret` = ':twitter_secret' where id = ':id' LIMIT 1;參數:3密鑰:名稱:[12] :twitter_key參數=-1name=[12] ":twitter_key"is_param=1參數類型=2鍵: 名稱: [15] :twitter_secret參數=-1name=[15] ":twitter_secret"is_param=1參數類型=2鍵:名稱:[3]:id參數=-1名稱=[3] ":id"is_param=1參數類型=2//print_r($stmt->errorInfo()) 輸出:大批([0] =>00000)

                  解決方案

                  我對 PDO 了解不多,但我的感覺是你綁定參數的方式有問題.但是,確定的最簡單方法是查看實際查詢.

                  根據文檔,您應該能夠在 $stmt->queryString 中看到生成的查詢,因為它轉到 SQL.現在無法看到,因為您正在將參數綁定到語句 after 輸出 $stmt.

                  在綁定參數之后(或者甚至在執行查詢之后,我不知道)執行 print_r() .你應該得到真正的查詢字符串,并找到問題的根源.

                  I am having a problem using PHP's PDO object to prepare an update statement and updating the record. I have taken the raw SQL query and ran it in phpMyAdmin with the params replaced by their values that are passed to the function. Which updates the record as intended. However, when ran from the script it does not update. It throws zero errors and it returns an errorInfo() reply of 00000, which to my understanding is PDO's way of saying all is well. I know the PDO object works because it successfully inserts and selects records from the database, including the one I am trying to update. I understand this update function is ugly, I am just learning PDO.

                  Obviously, this is coded in PHP5, using PDO.

                  Class Function:

                  public function update($tbl_name, $where = null, $what = null)
                      {
                          if(is_array($where))
                          {
                              $where_str = 'where ';
                              foreach($where as $key => $val)
                              {
                                  $where_str .= "{$key} = ':{$key}' and ";
                              }
                              $where_str = substr($where_str,0,-5);
                  
                              $what_str = 'set ';
                              foreach($what as $key => $val)
                              {
                                  $what_str .= "`{$key}` = ':{$key}', ";
                              }
                              $what_str = substr($what_str,0,-2);
                  
                              $query_str = "update {$tbl_name} {$what_str} {$where_str} LIMIT 1;";
                              $stmt = $this->dbh->prepare($query_str);
                              echo '<pre>'.print_r($stmt, true).'</pre>';
                              foreach($what as $key => $val)
                              {
                                  if('date_time' === $key) continue;
                                  $bind = $stmt->bindValue(":{$key}",$val);
                                  echo ($bind ? 'true' : 'false')." :{$key}=",$val,'<br/>';
                              }
                              foreach($where as $key => $val)
                              {
                                  if('date_time' === $key) continue;
                                  $bind = $stmt->bindValue(":{$key}",$val);
                                  echo ($bind ? 'true' : 'false')." :{$key} ",$val,'<br/>';
                              }
                          }else{
                              return false;
                          }
                          $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                          $exec = $stmt->execute();
                          echo 'exec: '.($exec === true ? 'true:' : 'false:').':'.$exec.'<br/>';
                  
                          echo '<pre>';
                          $stmt->debugDumpParams();
                          echo '</pre>';
                  
                          return $stmt->errorInfo();
                      }
                  

                  Called from session update/login script:

                  $where = array(
                      'id' => $user['id'],
                      );
                  $what = array(
                      'twitter_key'    => $oauth_token,
                      'twitter_secret' => $oauth_token_secret
                      );
                  
                  $update = $db->update('users', $where, $what);
                  

                  Output from echos and print_r in class function and caller:

                  // print_r($stmt = $this->dbh->prepare($query_str)) output:
                  PDOStatement Object
                  (
                      [queryString] => update users set `twitter_key` = ':twitter_key', `twitter_secret`     = ':twitter_secret' where id = ':id' LIMIT 1;
                  )
                  
                  // output from the bing params and execution returns
                  true :twitter_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXX
                  true :twitter_secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                  true :id 20
                  exec: true:1
                  
                  // $stmt->debugDumpParams() output: 
                  SQL: [111] update users set `twitter_key` = ':twitter_key', `twitter_secret` = ':twitter_secret' where id = ':id' LIMIT 1;
                  Params:  3
                  Key: Name: [12] :twitter_key
                  paramno=-1
                  name=[12] ":twitter_key"
                  is_param=1
                  param_type=2
                  Key: Name: [15] :twitter_secret
                  paramno=-1
                  name=[15] ":twitter_secret"
                  is_param=1
                  param_type=2
                  Key: Name: [3] :id
                  paramno=-1
                  name=[3] ":id"
                  is_param=1
                  param_type=2
                  
                  // print_r($stmt->errorInfo()) output:
                  Array
                  (
                      [0] => 00000
                  )
                  

                  解決方案

                  I don't know much about PDO, but my feeling is there is something wrong with the way you bind the parameters. However, the easiest way to tell for sure is to see the actual query.

                  According to the docs, you should be able to see the generated query as it went to SQL in $stmt->queryString. It's not possible to see right now because you are binding the parameters to the statement after you are outputting $stmt.

                  Do a print_r() after you bind the parameters (or maybe even after execution of the query, I don't know). You should get the real query string, and get to the bottom of the problem.

                  這篇關于PHP PDO 準備好的語句查詢不更新記錄的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Deadlock exception code for PHP, MySQL PDOException?(PHP、MySQL PDOException 的死鎖異常代碼?)
                  PHP PDO MySQL scrollable cursor doesn#39;t work(PHP PDO MySQL 可滾動游標不起作用)
                  PHP PDO ODBC connection(PHP PDO ODBC 連接)
                  Using PDO::FETCH_CLASS with Magic Methods(使用 PDO::FETCH_CLASS 和魔術方法)
                  php pdo get only one value from mysql; value that equals to variable(php pdo 只從 mysql 獲取一個值;等于變量的值)
                  MSSQL PDO could not find driver(MSSQL PDO 找不到驅動程序)

                    <small id='ZXdTM'></small><noframes id='ZXdTM'>

                  • <legend id='ZXdTM'><style id='ZXdTM'><dir id='ZXdTM'><q id='ZXdTM'></q></dir></style></legend>
                    • <i id='ZXdTM'><tr id='ZXdTM'><dt id='ZXdTM'><q id='ZXdTM'><span id='ZXdTM'><b id='ZXdTM'><form id='ZXdTM'><ins id='ZXdTM'></ins><ul id='ZXdTM'></ul><sub id='ZXdTM'></sub></form><legend id='ZXdTM'></legend><bdo id='ZXdTM'><pre id='ZXdTM'><center id='ZXdTM'></center></pre></bdo></b><th id='ZXdTM'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='ZXdTM'><tfoot id='ZXdTM'></tfoot><dl id='ZXdTM'><fieldset id='ZXdTM'></fieldset></dl></div>
                        <bdo id='ZXdTM'></bdo><ul id='ZXdTM'></ul>

                            <tbody id='ZXdTM'></tbody>

                            <tfoot id='ZXdTM'></tfoot>
                          1. 主站蜘蛛池模板: 欧洲精品久久久久毛片完整版 | 日本午夜精品 | 国产日韩精品一区 | 国产精品久久久久久吹潮 | 中文在线а√在线8 | 亚洲午夜视频 | 久国久产久精永久网页 | 亚洲另类视频 | 亚洲精品天堂 | 久久99深爱久久99精品 | 日韩精品久久久 | 亚洲综合色网 | 日本不卡一区二区三区 | 欧美日韩中| 国产h在线 | 亚洲精品一区二区 | 91久久久久久久久久久 | 在线四虎 | 香蕉国产在线视频 | 日本午夜免费福利视频 | 国产区在线视频 | 午夜视频大全 | 蜜桃一区二区三区 | av网站在线播放 | 色视频网站 | 在线一区二区三区 | 日韩a级片| 免费黄色大片 | 国产精品永久免费视频 | 黄网站免费在线 | 精品一区二区三区在线观看国产 | 亚洲 欧美 日韩在线 | 日韩欧美国产一区二区三区 | 在线看av网址 | 狠狠色香婷婷久久亚洲精品 | 欧美区在线 | 日本在线免费观看 | 国产a区| 久久午夜精品 | 亚洲日日操 | 91精品久久久久久久久久入口 |