小编Tch*_*upi的帖子

使用LEFT JOIN在MySQL中更新多个表

我有两个表,并希望更新LEFT JOIN中所有行的T1字段.

举一个简单的例子,更新以下结果集的所有行:

SELECT T1.* FROM T1 LEFT JOIN T2 ON T1.id = T2.id WHERE T2.id IS NULL  
Run Code Online (Sandbox Code Playgroud)

MySQL手册指出:

多表UPDATE语句可以使用SELECT语句中允许的任何类型的连接,例如LEFT JOIN.

但是我在文档化的多表UPDATE中找不到正确的语法.

什么是正确的语法?

mysql sql-update

160
推荐指数
3
解决办法
24万
查看次数

我需要一个从左边截断的溢出,带有椭圆

简而言之,我有一个字段,其中最右边的数字是最重要的.(当然,这个领域来自我们的附属公司的系统,基于他们的主键,所以最左边的数字每个时期只改变一次!)

每个人都知道CSS提供了一个右截断"text-overflow:ellipsis;".如何(没有向服务器添加代码以通过字符串手术准备该字段)我们是否截断LEFT上的字段,并将"..."elipses放在LEFT上?

(CSS3没问题.)

css css3

24
推荐指数
2
解决办法
7667
查看次数

使用随机盐改进密码哈希

我正在创建一个网站,我正在尝试决定如何加密用户密码以将它们存储在SQL数据库中.

我意识到使用简单的md5(密码)是非常不安全的.我正在考虑使用sha512(password.salt),我一直在研究生成有用盐的最佳方法.我阅读了很多文章,说明盐应该尽可能随机地添加熵到哈希,这看起来是个好主意.但:

  • 你需要将随机盐与哈希一起存储
  • 鉴于攻击者以某种方式访问​​了您的哈希密码(并试图将哈希值反转为纯文本),这意味着他可能会转储您的数据库,然后也可以访问您的随机盐

在数据库中哈希旁边的怪异外观值是不是很明显?如果攻击者可以使用哈希值访问salt,那么它更安全吗?

任何人都有该领域的专业知识?谢谢!

php mysql security hash sha

21
推荐指数
2
解决办法
2802
查看次数

如何使PHP upload_progress SESSION工作?

我正在尝试在php.ini中进行一系列更改之后使工作成为upload_progress会话,如:

session.upload_progress.enabled = On

;session.upload_progress.cleanup = On

session.upload_progress.prefix = "upload_progress_"

session.upload_progress.name = "123"

session.upload_progress.freq =  "1%"

session.upload_progress.min_freq = "1"
Run Code Online (Sandbox Code Playgroud)

并创建基于html的页面,并使用表单提交文件:

<form action="upload_progress.php" method="POST" enctype="multipart/form-data">
  <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
  <input type="file" name="file1" />
  <input type="file" name="file2" />
  <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

然后正确上传文件的服务器端脚本:

session_start();
move_uploaded_file($_FILES['file1']['tmp_name'], './uploads/'.$_FILES['file1']['name']);
move_uploaded_file($_FILES['file2']['tmp_name'], './uploads/'.$_FILES['file2']['name']);
print_r($_SESSION);
Run Code Online (Sandbox Code Playgroud)

$_SESSION虽然文件上传正确完成,但全局变量中有一个空数组.会话设置有什么问题?

我使用的是PHP 5.4.5

Notice: Undefined index: upload_progress_123 in C:\apache\localhost\www\upload_progress.php on line 13

php

17
推荐指数
2
解决办法
7118
查看次数

无法找到套接字传输"tls" - 您是否忘记在配置PHP时启用它

我正在使用wamp来运行,但是我在运行时收到了这个警告:

警告:fsockopen()[function.fsockopen]:无法连接到tls://smtp.gmail.com:465(无法找到套接字传输"tls" - 您是否忘记在配置PHP时启用它?)in第24行的C:\ wamp\www\mail\testemail.php无法找到套接字传输"tls" - 您是否忘记在配置PHP时启用它?

php wampserver

12
推荐指数
1
解决办法
1万
查看次数

nodejs使用请求编码

我试图通过请求获得正确的编码.

request.get({
    "uri":'http://www.bold.dk/tv/',
    "encoding": "text/html;charset='charset=utf-8'"
  },
  function(err, resp, body){    
    console.log(body);
  }
);
Run Code Online (Sandbox Code Playgroud)

无论我做什么,丹麦字符的编码都是不对的.

有什么想法吗?

encoding node.js

12
推荐指数
2
解决办法
3万
查看次数

使用Eclipse处理PHP中的阿拉伯字符串

我目前正致力于网站的本地化,这是第一个仅限英语的网站.第三方公司进行了翻译,并为我们提供了包含翻译的excel文件.我成功转换为我可以在我的视图中使用的PHP数组.我正在使用Eclipse for Windows来编辑我的PHP文件.

一切都很好,除了我需要在我的字符串中添加变量,例如:

'%1 is now following %2'
Run Code Online (Sandbox Code Playgroud)

在阿拉伯语中我提供了像这样的字符串:

'_______???? ????? _______'
Run Code Online (Sandbox Code Playgroud)

我发现用%1和%2 替换_ _是非常困难的,因为阿拉伯语部分是一个从左到右的字符串,而且%1,%2从左到右或从右到左,我不是当然.我几乎没有得到我的参数顺序的结果,因为%1有时会在字符串的左边,有时在右边,这取决于我开始输入的位置.复制粘贴替换字符串也可能具有相同的奇怪效果.

大多数时候我最终会得到一个像这样的字符串:

%2???? ????? %1
Run Code Online (Sandbox Code Playgroud)

%1应位于右侧站点,%2位于左侧站点.%1显然这被认为是从右到左的字符串,因为%显示在右侧.这%2被认为是从左到右.

我以前肯定有人这个问题.有没有什么办法可以在Eclipse中轻松完成?或者使用更智能的编辑器来解决阿拉伯问题?或者它可能是一个Windows问题?有解决方法吗?

UPDATE

我也尝试将我的字符串拆分成多个字符串,但这也改变了参数的顺序:

'%1' . '???? ????' . '%2'
Run Code Online (Sandbox Code Playgroud)

更新2

似乎更换替换字符串会让事情变得更好.它可能与阿拉伯字符串中数字的处理方式有关.这个字符串在Eclipse中编辑没有任何问题.参数的顺序是正确的,PHP正确处理字符串:

'{var2} ???? ????? {var1}'
Run Code Online (Sandbox Code Playgroud)

如果没有找到其他解决方案,这可能是一个很好的选择.

php eclipse editor arabic

9
推荐指数
2
解决办法
1262
查看次数

php确定变量是否是一个打开的文件句柄

我目前正在使用is_resource()来确定变量是否是一个打开的文件句柄.

这是正确的还是有另一种(更好的)方法来做到这一点?

php

9
推荐指数
1
解决办法
4600
查看次数

MySQL复制没有在binlog中运行更新

我有一些运行版本5.1.63的mysql服务器,虽然本周早些时候对奴隶运行了一些查询,但我注意到奴隶上的一些数据本应该使用主服务器上的更新语句删除.

我最初的想法是:

  • 团队中的某个人正在更新奴隶,我已经反驳了
  • 正在更新的列已更改

所以,我通过运行mysql show status"table"查询来调查.这是针对每个服务器上的测试数据库运行的,以查看数据长度是多少,在很多情况下,它显示了服务器之间的数据长度不同,但是在眼球上看看数据我可以看到数据是相同,所以我无法使用此方法来查看是否存在任何差异,因为它似乎容易出错.

接下来,我为每个表运行一个简单的(跨所有dbs)行计数,以确认行计数是相同的 - 它是.

然后我开始查看bin日志以进行复制.我可以看到应该在日志中清晰可见的更新语句,但更新从未运行过.

我需要知道的是:

  1. 是复制坏了吗?我假设是
  2. 如果我创建新的从服务器,我会遇到同样的问题吗?
  3. 如何在服务器上找出问题的严重程度?

任何帮助表示赞赏.

mysql replication sql-update

8
推荐指数
1
解决办法
477
查看次数

如何使用Delphi和PHP获得相同的MD5?

我正在使用带有FireMonkey的Delphi XE2.

我已经阅读了很多关于MD5的其他问题,但没有找到我的问题的答案...我还测试了不同的脚本来从Delphi生成MD5:

function MD5(const text: string) : string;
var
  md5 : TIdHashMessageDigest5;
begin
  md5    := TIdHashMessageDigest5.Create;
  Result := LowerCase(md5.HashStringAsHex(text, TEncoding.ANSI));
  md5.Free;
end;
Run Code Online (Sandbox Code Playgroud)

要么

function MD5(const text: String) : string;
var
  md5: IMD5;
begin
  md5:= GetMD5;
  md5.Init;
  md5.Update(TByteDynArray(RawByteString(AnsiString(text))), Length(AnsiString(text)));
  Result := LowerCase(md5.AsString);
end;
Run Code Online (Sandbox Code Playgroud)

两者都给我相同的结果......这通常与我在PHP中的结果相同:

$md5 = md5($toencode);
$md5 = hash("md5", $toencode);
Run Code Online (Sandbox Code Playgroud)

但是如果我使用Delphi或PHP,结果是不同的,当我请求其中一个字符的MD5时:"或者' 可能有其他字符产生不同的结果但我只是在测试期间找到这些字符...

我已经测试了许多扩展的ASCII字符并且具有相同的MD5 ...

所以,我不明白为什么我与它们中的一些("')存在差异,而且我想知道是否有一种方法可以始终从Delphi生成PHP MD5结果,无论字符是什么.

任何的想法?

例如:

Delphi:

":b15835f133ff2e27c7cb28117bfae8f4

':3590cb8af0bbb9e78c343b52b93773c9

PHP:

":3bd864034f446da13581129bb17f9191 …

php delphi md5 delphi-xe2 firemonkey

8
推荐指数
2
解决办法
8965
查看次数