我正在尝试使用以下查询创建一个表
Create Table PerformaceReport
(
campaignID int,
keywordID bigint,
keyword varchar(8000),
avgPosition decimal(18,6),
cost int,
clicks int,
 conv1PerClick int, 
 impressions int,
  day datetime,
  currency varchar(8000),
  account varchar(8000),
   timeZone varchar(8000),
    adGroup varchar(8000),
    adGroupState varchar(8000),
     approvalStatus varchar(8000),
     lowestPosition varchar(8000),
     campaign varchar(8000),
      campaignState varchar(8000),
       convManyPerClick int,
       totalConvValue decimal(18,6),
        maxCPCSource varchar(8000),
         clientName varchar(8000),
          destinationURL varchar(8000),
           device varchar(8000),
           firstPageCPC int,
            isNegative bit,
             matchType varchar(8000),
              maxCPC varchar(8000),
               maxCPM varchar(8000),
               highestPosition varchar(8000),
               qualityScore int,
               keywordState varchar(8000),
               viewThroughConv int)
我收到以下错误
#1118 - Row size too large. The maximum …在MySQL中创建表时,我应该为Collation设置什么:
latin1_swedish_ci 要么 utf8_general_ci无论如何,整理是什么?
我一直在使用latin1_swedish_ci,会不会引起任何问题?
我第一次使用 CryptoJS,我正在努力解密我使用openssl_encrypt()加密的字符串在 PHP 中。
PHP 5.6.13.0 和 CryptoJS 3.1.2
首先,我的PHP:
$encryptHash = hash_pbkdf2("sha256", "0000", "secret", 1000, 32);
var_dump($encryptHash);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
var_dump(bin2hex($iv));
$encrypted = openssl_encrypt("hello! this is my string!", 'aes-256-cbc', $encryptHash, 0, $iv);
var_dump($encrypted);
$encrypted = base64_encode($encrypted.":".bin2hex($iv));
echo "\r\n".$encrypted;
这给了我以下输出:
string(32) "59b6ab46d379b89d794c87b74a511fbd"
string(32) "0aaff094b6dc29742cc98a4bac8bc8f9"
string(44) "xHIxg1HDUOqyhBmAaU2Sx3ct8GaKaeE5w4d1KM1yuDw="
eEhJeGcxSERVT3F5aEJtQWFVMlN4M2N0OEdhS2FlRTV3NGQxS00xeXVEdz06MGFhZmYwOTRiNmRjMjk3NDJjYzk4YTRiYWM4YmM4Zjk=
现在我的JS:
string(32) "59b6ab46d379b89d794c87b74a511fbd"
string(32) "0aaff094b6dc29742cc98a4bac8bc8f9"
string(44) "xHIxg1HDUOqyhBmAaU2Sx3ct8GaKaeE5w4d1KM1yuDw="
eEhJeGcxSERVT3F5aEJtQWFVMlN4M2N0OEdhS2FlRTV3NGQxS00xeXVEdz06MGFhZmYwOTRiNmRjMjk3NDJjYzk4YTRiYWM4YmM4Zjk=
如您所见,我的输出是一个空字符串。有人试图做类似的事情吗?我难住了!
原来我的密钥长度不正确!这是我的工作 PHP(加密)和 JS(解密)代码:
PHP:
var encryptedString = "eEhJeGcxSERVT3F5aEJtQWFVMlN4M2N0OEdhS2FlRTV3NGQxS00xeXVEdz06MGFhZmYwOTRiNmRjMjk3NDJjYzk4YTRiYWM4YmM4Zjk=";
var key256Bits  = CryptoJS.PBKDF2("0000", "secret", { keySize: 128/32, iterations: 1000, hasher: CryptoJS.algo.SHA256 …我无法弄清楚如何一劳永逸地解决这些问题.当我试着写"è"(我是意大利语)时,我第一次遇到这些问题.经过一些研究,我发现在一开始就添加"#coding:utf-8"似乎解决了这个问题......直到现在.
我编辑了1或2天前编写的代码.它工作得很好....现在,每当我运行脚本时,它都不起作用:它永远不会启动,我会遇到这个错误:
SyntaxError: 'utf-8' codec can't decode byte 0xe0 in position 32: invalid continuation byte.
问题是......位置32?哪里?什么是有问题的线?我不知道我添加了什么,因为我做了一些改动.尝试在调试模式下执行也没有帮助,当我在脚本的最开始"Step Into"时,错误立即出现(顺便说一句,我使用的是Wingware 101作为IDLE,我正在使用Win7的).对不起,如果我没有足够的信息,我可以发布代码,但我害怕这样做,这是一个用意大利语写的烂摊子,也许不容易理解到底发生了什么.
谢谢你的回复和节日快乐!
mysql ×2
utf-8 ×2
collation ×1
cryptography ×1
cryptojs ×1
encryption ×1
iso-8859-1 ×1
javascript ×1
php ×1
python ×1
unicode ×1