The branch, QA_3_4 has been updated
       via  3c7b233d9c83b501f5e220a6dcba8259b7554a87 (commit)
       via  5da1aaa0fe7493afecde8ac92a0b561337bf217e (commit)
      from  346c70d6fd7a6e402e41dfd552f70e3bdaf83323 (commit)


- Log -----------------------------------------------------------------
commit 3c7b233d9c83b501f5e220a6dcba8259b7554a87
Author: Madhura Jayaratne <[email protected]>
Date:   Sun Jan 22 11:55:28 2012 +0530

    bug #3477063 [edit] Missing set fields and values in generated INSERT query

commit 5da1aaa0fe7493afecde8ac92a0b561337bf217e
Author: Madhura Jayaratne <[email protected]>
Date:   Sun Jan 22 11:52:23 2012 +0530

    To avoid warnings when strlen() is called on the array containing chosen 
values for set field

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                            |    1 +
 libraries/tbl_replace_fields.inc.php |    6 ++++--
 tbl_replace.php                      |    7 +++++--
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6d8e6b5..a61a573 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,7 @@ phpMyAdmin - ChangeLog
 - bug #3463933 [display] SELECT DISTINCT displays wrong total records found
 - patch #3458944 [operations] copy table data missing SET 
SQL_MODE='NO_AUTO_VALUE_ON_ZERO'
 - bug #3469254 [edit] Setting data to NULL and drop-downs
+- bug #3477063 [edit] Missing set fields and values in generated INSERT query
 
 3.4.9.0 (2011-12-21)
 - bug #3442028 [edit] Inline editing enum fields with null shows no dropdown
diff --git a/libraries/tbl_replace_fields.inc.php 
b/libraries/tbl_replace_fields.inc.php
index 8ebade8..b3f125b 100644
--- a/libraries/tbl_replace_fields.inc.php
+++ b/libraries/tbl_replace_fields.inc.php
@@ -68,17 +68,19 @@ if (false !== $possibly_uploaded_val) {
     }
 
     // $key contains the md5() of the fieldname
-    if (0 === strlen($val) && $type != 'protected') {
+    if ($type != 'protected' && $type != 'set' && 0 === strlen($val)) {
         // best way to avoid problems in strict mode (works also in non-strict 
mode)
         if (isset($me_auto_increment)  && isset($me_auto_increment[$key])) {
             $val = 'NULL';
         } else {
             $val = "''";
-        } 
+        }
     } elseif ($type == 'set') {
         if (! empty($_REQUEST['fields']['multi_edit'][$rownumber][$key])) {
             $val = implode(',', 
$_REQUEST['fields']['multi_edit'][$rownumber][$key]);
             $val = "'" . PMA_sqlAddslashes($val) . "'";
+        } else {
+             $val = "''";
         }
     } elseif ($type == 'protected') {
         // here we are in protected mode (asked in the config)
diff --git a/tbl_replace.php b/tbl_replace.php
index 98d1b28..cb26a87 100644
--- a/tbl_replace.php
+++ b/tbl_replace.php
@@ -218,7 +218,7 @@ foreach ($loop_array as $rownumber => $where_clause) {
     if ($is_insert && $using_key && isset($me_fields_type) && 
is_array($me_fields_type) && isset($where_clause)) {
         $prot_row = PMA_DBI_fetch_single_row('SELECT * FROM ' . 
PMA_backquote($table) . ' WHERE ' . $where_clause . ';');
     }
-    
+
     // When a select field is nullified, it's not present in $_REQUEST
     // so initialize it; this way, the foreach($me_fields) will process it
     foreach ($me_fields_name as $key => $val) {
@@ -227,7 +227,10 @@ foreach ($loop_array as $rownumber => $where_clause) {
         }
     }
 
-    foreach ($me_fields as $key => $val) {
+    // Iterate in the order of $me_fields_name, not $me_fields, to avoid 
problems
+    // when inserting multiple entries
+    foreach ($me_fields_name as $key => $field_name) {
+        $val = $me_fields[$key];
 
         // Note: $key is an md5 of the fieldname. The actual fieldname is 
available in $me_fields_name[$key]
 


hooks/post-receive
-- 
phpMyAdmin

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Phpmyadmin-git mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/phpmyadmin-git

Reply via email to