2016-09-08 10 views
1

エラーのないテーブル行への更新を書き込めないシステムがあります。
クエリの詳細は成功と報告される単純なUPDATEですが、データはデータベーステーブルの行に書き込まれません。Innodb on MariaDBが書き込みに失敗しましたサイレント

私はすべてのSQLの読み込み/書き込みを処理するために使用するオブジェクトを持っています。トランザクションが成功した後のオブジェクトのダンプが含まれています。すぐにデータが正しく保存されているし、この実行後、私はそれがあるディスクへのメモリからのデータのフラッシュのいくつかの並べ替えがあると信じている。私は、スクリプトの実行を停止した場合

[pdo:Gibbon\core\security:private] => Gibbon\core\sqlConnection Object 
    (
     [pdo:protected] => PDO Object 
      (
      ) 

     [success:Gibbon\core\sqlConnection:private] => 1 
     [querySuccess:Gibbon\core\sqlConnection:private] => 1 
     [result:Gibbon\core\sqlConnection:private] => PDOStatement Object 
      (
       [queryString] => UPDATE `gibbonPerson` 
     SET `passwordStrong` = :passwordStrong, `passwordStrongSalt` = :passwordStrongSalt, `password` = :password WHERE `gibbonPersonID` = :gibbonPersonID 
      ) 

     [data:Gibbon\core\sqlConnection:private] => Array 
      (
       [:passwordStrong] => $2y$12$1EZ30jh/CJ/gNwo/alLLlOW/HbcfxCv7tveZgU5jeJ//y.ayiqto2 
       [:passwordStrongSalt] => 
       [:password] => 
       [:gibbonPersonID] => 0000000001 
      ) 

     [query:Gibbon\core\sqlConnection:private] => UPDATE `gibbonPerson` 
     SET `passwordStrong` = :passwordStrong, `passwordStrongSalt` = :passwordStrongSalt, `password` = :password WHERE `gibbonPersonID` = :gibbonPersonID 
     [error:Gibbon\core\sqlConnection:private] => 
     [table:Gibbon\core\sqlConnection:private] => gibbonPerson 
     [identifier:Gibbon\core\sqlConnection:private] => gibbonPersonID 
     [where:Gibbon\core\sqlConnection:private] => 
     [version:Gibbon\core\sqlConnection:private] => 5.5.50-MariaDB 
     [lastQuery] => UPDATE `gibbonPerson` 
     SET `passwordStrong` = :passwordStrong, `passwordStrongSalt` = :passwordStrongSalt, `password` = :password WHERE `gibbonPersonID` = :gibbonPersonID 
     [insert] => 
    ) 

()(死にます)失敗する。

character-set-server = utf8 
collation-server = utf8_unicode_ci 
default-storage-engine = InnoDB  
innodb_change_buffering = all  
innodb_buffer_pool_size = 800M  
innodb_log_file_size = 256M  
innodb_log_buffer_size = 4M  
innodb_flush_log_at_trx_commit = 2  
innodb_thread_concurrency = 8  
innodb_flush_method = O_DIRECT  
innodb_file_per_table = ON  
max_heap_table_size = 64M  
query_cache_size = 32M  
table_cache = 256  
read_buffer_size = 8M  
read_rnd_buffer_size = 8M  
sort_buffer_size = 8M  
tmp_table_size = 64M 
と私の接​​続設定は、次のとおりです: サーバーのための私の設定は

private function setSQLMode() 
{ 
    $config = new config(); 
    $setting = $config->get('setting'); 
    if (isset($setting['System']['installtype']) && $setting['System']['installtype'] == 'Production') 
     $this->getConnection()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);  // Production 
    else 
     $this->getConnection()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Testing and Development 
    $this->getConnection()->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
    $this->getConnection()->setAttribute(PDO::ATTR_AUTOCOMMIT, true); 
    $this->version = $this->getVersion(); 
    if ($this->version > '5.7') //Default for 5.7.x is STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER 
     $result = $this->getConnection()->prepare("SET SESSION `sql_mode` = ''"); 
    elseif ($this->version > '5.6') // Default for 5.6.x is NO_ENGINE_SUBSTITUTION 
     $result = $this->getConnection()->prepare("SET SESSION `sql_mode` = ''"); 
    else // Default for < 5.6 is '' 
     $result = $this->getConnection()->prepare("SET SESSION `sql_mode` = ''"); 
    $result->execute(array()); 
} 

誰もがここで起こっても何についてどのような考えを持っていますか?私は設定を変更して、無音時に他の投稿を読んでデータを書き込めなかった後、迷っています。どんな助けもありがとう! クレイグ

RAMは、仮想マシン上で非常に小さい1Gです...

ショーは、あなたはおそらく、これらに狂ったようにスワップされている小さな1ギガバイト「マシン」については、表

gibbonPerson CREATE TABLE `gibbonPerson` (
 `gibbonPersonID` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT, 
 `title` varchar(5) CHARACTER SET utf8 NOT NULL, 
 `surname` varchar(30) CHARACTER SET utf8 NOT NULL DEFAULT '', 
 `firstName` varchar(30) CHARACTER SET utf8 NOT NULL DEFAULT '', 
 `preferredName` varchar(30) CHARACTER SET utf8 NOT NULL DEFAULT '', 
 `officialName` varchar(150) CHARACTER SET utf8 NOT NULL, 
 `nameInCharacters` varchar(20) CHARACTER SET utf8 NOT NULL, 
 `gender` enum('M','F','Other','Unspecified') CHARACTER SET utf8 NOT NULL DEFAULT 'Unspecified', 
 `username` varchar(20) CHARACTER SET utf8 NOT NULL, 
 `password` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '', 
 `passwordStrong` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `passwordStrongSalt` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `passwordForceReset` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N' COMMENT 'Force user to reset password on next login.', 
 `status` enum('Full','Expected','Left','Pending Approval') CHARACTER SET utf8 NOT NULL DEFAULT 'Full', 
 `canLogin` enum('Y','N') CHARACTER SET utf8 NOT NULL DEFAULT 'Y', 
 `gibbonRoleIDPrimary` int(3) unsigned zerofill NOT NULL, 
 `gibbonRoleIDAll` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `dob` date DEFAULT NULL, 
 `email` varchar(50) CHARACTER SET utf8 DEFAULT NULL, 
 `emailAlternate` varchar(50) CHARACTER SET utf8 NOT NULL, 
 `image_240` varchar(255) CHARACTER SET utf8 DEFAULT NULL, 
 `lastIPAddress` varchar(15) CHARACTER SET utf8 NOT NULL DEFAULT '', 
 `lastTimestamp` timestamp NULL DEFAULT NULL, 
 `lastFailIPAddress` varchar(15) CHARACTER SET utf8 DEFAULT NULL, 
 `lastFailTimestamp` timestamp NULL DEFAULT NULL, 
 `failCount` int(1) DEFAULT '0', 
 `address1` mediumtext CHARACTER SET utf8 NOT NULL, 
 `address1District` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `address1Country` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `address2` mediumtext CHARACTER SET utf8 NOT NULL, 
 `address2District` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `address2Country` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `phone1Type` enum('','Mobile','Home','Work','Fax','Pager','Other') CHARACTER SET utf8 NOT NULL DEFAULT '', 
 `phone1CountryCode` varchar(7) CHARACTER SET utf8 NOT NULL, 
 `phone1` varchar(20) CHARACTER SET utf8 NOT NULL, 
 `phone3Type` enum('','Mobile','Home','Work','Fax','Pager','Other') CHARACTER SET utf8 NOT NULL DEFAULT '', 
 `phone3CountryCode` varchar(7) CHARACTER SET utf8 NOT NULL, 
 `phone3` varchar(20) CHARACTER SET utf8 NOT NULL, 
 `phone2Type` enum('','Mobile','Home','Work','Fax','Pager','Other') CHARACTER SET utf8 NOT NULL DEFAULT '', 
 `phone2CountryCode` varchar(7) CHARACTER SET utf8 NOT NULL, 
 `phone2` varchar(20) CHARACTER SET utf8 NOT NULL, 
 `phone4Type` enum('','Mobile','Home','Work','Fax','Pager','Other') CHARACTER SET utf8 NOT NULL DEFAULT '', 
 `phone4CountryCode` varchar(7) CHARACTER SET utf8 NOT NULL, 
 `phone4` varchar(20) CHARACTER SET utf8 NOT NULL, 
 `website` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `languageFirst` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `languageSecond` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `languageThird` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `countryOfBirth` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `ethnicity` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `citizenship1` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `citizenship1Passport` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `citizenship1PassportScan` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `citizenship2` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `citizenship2Passport` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `religion` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `nationalIDCardNumber` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `nationalIDCardScan` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `residencyStatus` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `visaExpiryDate` date DEFAULT NULL, 
 `profession` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `employer` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `jobTitle` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `emergency1Name` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `emergency1Number1` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `emergency1Number2` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `emergency1Relationship` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `emergency2Name` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `emergency2Number1` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `emergency2Number2` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `emergency2Relationship` varchar(30) CHARACTER SET utf8 NOT NULL, 
 `gibbonHouseID` int(3) unsigned zerofill DEFAULT NULL, 
 `studentID` varchar(10) CHARACTER SET utf8 NOT NULL, 
 `dateStart` date DEFAULT NULL, 
 `dateEnd` date DEFAULT NULL, 
 `gibbonSchoolYearIDClassOf` int(3) unsigned zerofill DEFAULT NULL, 
 `lastSchool` varchar(100) CHARACTER SET utf8 NOT NULL, 
 `nextSchool` varchar(100) CHARACTER SET utf8 NOT NULL, 
 `departureReason` varchar(50) CHARACTER SET utf8 NOT NULL, 
 `transport` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `transportNotes` text CHARACTER SET utf8 NOT NULL, 
 `calendarFeedPersonal` text CHARACTER SET utf8 NOT NULL, 
 `viewCalendarSchool` enum('Y','N') CHARACTER SET utf8 NOT NULL DEFAULT 'Y', 
 `viewCalendarPersonal` enum('Y','N') CHARACTER SET utf8 NOT NULL DEFAULT 'Y', 
 `viewCalendarSpaceBooking` enum('Y','N') CHARACTER SET utf8 NOT NULL DEFAULT 'N', 
 `gibbonApplicationFormID` int(12) unsigned zerofill DEFAULT NULL, 
 `lockerNumber` varchar(20) CHARACTER SET utf8 NOT NULL, 
 `vehicleRegistration` varchar(20) CHARACTER SET utf8 NOT NULL, 
 `personalBackground` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `messengerLastBubble` date DEFAULT NULL, 
 `privacy` text CHARACTER SET utf8, 
 `dayType` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'Student day type, as specified in the application form.', 
 `gibbonThemeIDPersonal` int(4) unsigned zerofill DEFAULT NULL, 
 `gibboni18nIDPersonal` int(4) unsigned zerofill DEFAULT NULL, 
 `studentAgreements` text CHARACTER SET utf8, 
 `googleAPIRefreshToken` varchar(255) CHARACTER SET utf8 NOT NULL, 
 `receiveNotificationEmails` enum('Y','N') CHARACTER SET utf8 NOT NULL DEFAULT 'Y', 
 `fields` text CHARACTER SET utf8 NOT NULL COMMENT 'Serialised array of custom field values', 
 PRIMARY KEY (`gibbonPersonID`), 
 UNIQUE KEY `username` (`username`), 
 KEY `username_2` (`username`,`email`) 
) ENGINE=InnoDB AUTO_INCREMENT=1817 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 
+0

マシンのRAM容量はどれくらいですか? (あなたのmy.cnfを探しています) –

+0

BEGIN ... COMMITを使っていますか? UPDATEを見てみましょう。そして 'SHOW CREATE TABLE'。 –

+0

私はあなたの答えリックで質問を編集します。これを見てくれてありがとう。クレイグ –

答えて

0

を作成します。 「高」設定:

innodb_buffer_pool_size = 800M  --> 60M 
max_heap_table_size = 64M   --> 5M 
query_cache_size = 32M    --> 5M 
table_cache = 256     --> 100 
read_buffer_size = 8M    --> 4M 
read_rnd_buffer_size = 8M   --> 4M 
sort_buffer_size = 8M    --> 4M 
tmp_table_size = 64M    --> 5M 

列間に配列を表示しないでください。市民権、住所、電話などの余分なテーブルを作成する

:passwordはどのように置き換えられますか?それは適切にエスケープされ引用されていますか?失敗した場合、どのような特殊文字がありましたか?

+0

リックありがとうございます。テーブルは変更する私のものではありませんが、チームに尋ねます..これらのより小さい設定を試してみましょう.. –

関連する問題