小编Aal*_*abi的帖子

DELETE FROM`table` AS`alias` ... WHERE`alias``column` ...为什么语法错误?

我用MySQL试过这个:

DELETE FROM `contact_hostcommands_relation` AS `ContactHostCommand` WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1' at line 1
Run Code Online (Sandbox Code Playgroud)

注意:此查询是自动生成的,条件基于表别名.

为什么我会收到此错误?

有没有办法在where子句中使用表别名?

这个MySQL是否具体?

mysql sql syntax alias

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

如何在不更改工作目录的情况下运行npm install

如何在不将工作目录更改为项目根的情况下为项目安装依赖项?

你必须执行:

cd /my/project/root && npm install && cd -
Run Code Online (Sandbox Code Playgroud)

我正在寻找像-C的Makefile这样的选项,以便我可以:

npm install -C /my/project/root
Run Code Online (Sandbox Code Playgroud)

有关如何实现这一目标的任何想法?

cd node.js npm npm-install

7
推荐指数
1
解决办法
2209
查看次数

JavaScript如何在内部存储空值?

我总是想知道JavaScript如何在null内部存储值.null不同于任何价值.我想范围的变量存储在某种结构数组中,每个结构对应一个变量.这个结构是否有某种名为"null"的布尔属性?

我会在V8源代码中自己查找,但我在C++代码中很丢失:(

我在谷歌上找不到任何东西.大多数结果与诸如"如何确定变量是否未定义或为空?"之类的问题有关.或类似的.

javascript c++ null internal

6
推荐指数
1
解决办法
489
查看次数

使用基于hmac的客户端数据验证而不是会话?

会话的原则是在服务器端保存数据,只能由具有相应会话ID的用户访问.

有两种数据:私人或公共与客户的关系.会话它当然是私人的公共访问.

我们通常存储用户ID和一些随机数据(我没有任何具体的例子).

我正在考虑根本不使用会话.而是使用检查用户发送的数据的有效性的函数.服务器将具有用于散列用户数据的私钥.

例如,如果用户的id = 9999,我们通常将其存储在与会话ID相关联的文件中.每次客户端发出请求时,我们都会检查其会话ID并从与之关联的会话文件中检索数据.

我正在考虑在客户端存储会话数据,每次客户端发出请求时,它都会发送此数据和数据的哈希值.

如果用户登录,则发送其凭据,服务器返回其id,时间戳和基于用户ID和私钥计算的哈希值.对于将来的任何请求,服务器使用相同的函数,如果生成的散列相同,则会话有效并且数据先前已经过验证.

这是替换会话的有效方法吗?除了不保存服务器专用会话数据之外还有哪些缺点?

我很关心速度,我做了一个小测试......

<?php

$session = array(
    'userId' => 999,
    'timestamp' => time()
);
$privateKey = 'da39a3ee5e6b4b0d3255bfef95601890afd80709';

$startTime = microtime(true);

for ($i = 0; $i < 1000000; $i++){
    $hash = hash_hmac('sha1', json_encode($session), $privateKey);
}

echo 'Script took ' . (microtime(true) - $startTime) . ' seconds';
Run Code Online (Sandbox Code Playgroud)

......打印

Script took 5.246542930603 seconds
Run Code Online (Sandbox Code Playgroud)

我在笔记本电脑(Intel Duo)上运行它.在我看来,这是一个负担得起的时间(每哈希0.000005247).测试是否正确?

编辑:时间戳与用户ID一起进行哈希处理,以确保会话到期.所以在服务器端,即使会话有效,但它太旧,也可以认为是过期的.

那么,如果我们使用私钥散列数据和时间戳,它是否可用于生产?

php session

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

标签 统计

alias ×1

c++ ×1

cd ×1

internal ×1

javascript ×1

mysql ×1

node.js ×1

npm ×1

npm-install ×1

null ×1

php ×1

session ×1

sql ×1

syntax ×1