小编Eri*_*rik的帖子

使用WHERE SELECT子查询错误的MYSQL更新

我有一个问题,让选择子查询工作UPDATE.我正在尝试以下内容:

UPDATE foo
   SET bar=bar-1
 WHERE baz=
      (
       SELECT baz
       FROM foo
       WHERE fooID='1'
      )
Run Code Online (Sandbox Code Playgroud)

foo具有主键的表名称在哪里fooID.bar并且baz是INT类型.执行此操作时,我收到以下错误:

Error: A query failed. You can't specify target table 'foo' for update 
in FROM clause
Run Code Online (Sandbox Code Playgroud)

mysql select subquery

28
推荐指数
2
解决办法
6万
查看次数

在c#中处理非常大的二进制字符串

我正在研究遗传算法项目,我用二进制字符串编码我的染色体,每个32位代表一个值.问题是我正在优化的函数有超过3000个参数,这意味着我的位字符串中有超过96000位,而我对此进行的操作只是为了减慢...

我进行了如下操作:我有一个二进制类,我正在创建一个表示我的大二进制字符串的布尔数组.然后我用各种移动和移动等操纵这个二进制字符串.

我的问题是,有更好的方法吗?速度只是杀戮.我敢肯定,如果我只在一个字符串上执行此操作会很好,但我必须对超过1000代的25位字符串进行操作.

c# string binary

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

单引号是否在PHP中自动转义?那么清洁需要什么?

我正在阅读网络安全性,一个明显的主题是SQL注入.我正在尝试建立一个基本的php页面,我可以在其中执行sql注入(它是一个本地服务器).但是,似乎我的代码(或服务器)自动转义单引号.这是一个新标准还是我的服务器上激活了一个我不知道的设置?是否需要清理输入?

这是我的服务器端代码的示例:

$foo = $_POST['foo'];
$sql = "SELECT * FROM bar WHERE foo='" . $foo . "'";

connectoTo("database");
query($sql);
Run Code Online (Sandbox Code Playgroud)

其中connectTo()连接到数据库服务器并选择数据库,query()是执行查询时使用的常用过程.什么都没有清洁.但是,当我发送时

$_POST['foo'] = "' OR 1=1 #" 
Run Code Online (Sandbox Code Playgroud)

php页面收到这个

$_POST['foo'] = "\' OR 1=1 #"
Run Code Online (Sandbox Code Playgroud)

所以foo已经逃脱了?这与$ _GET相同.

有什么想法吗?我们不再需要清理用户输入了吗?

干杯

埃里克

php sql quotes escaping code-injection

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

Php返回多个数组

我想返回多个数组,然后将它们分开.

function cal(){
    $st1=array('1','2'); 
    $st2=array('1','2');
    return $st1."-".$st2;
}
Run Code Online (Sandbox Code Playgroud)

叫它

$mainstring=explode("-",cal())
print_r($mainstring[0]);
print_r($mainstring[1]);
Run Code Online (Sandbox Code Playgroud)

我想获得$ st1和$ st2的原始数组.

请帮忙.

php

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

标签 统计

php ×2

binary ×1

c# ×1

code-injection ×1

escaping ×1

mysql ×1

quotes ×1

select ×1

sql ×1

string ×1

subquery ×1