标签: quoting

我的Zend框架'引用'混乱

我有一个非常简单的问题,我无法在Zend Framework手册或其他地方找到令人满意的(主观看到的)答案......

我有很多方法可以将我的php变量移交给我的sql查询,但我失去了概述,可能我对一般的引用缺乏了解.

准备好的陈述

$sql =  "SELECT this, that
        FROM table
        WHERE id = ? AND restriction = ?";

$stmt = $this->_db->query($sql, array($myId, $myValue)); 
$result = $stmt->fetchAll();
Run Code Online (Sandbox Code Playgroud)

我理解使用这个解决方案我不需要引用任何东西,因为db为我处理这个.

通过API查询Zend_Db_Table和_Row对象

$ users = new Users();

a) $users->fetchRow('userID = ' . $userID);  
b) $users->fetchRow('userID = ' . $users->getAdapter()->quote($userID, 'INTEGER'));  
c) $users->fetchRow('userID = ?', $userID);  
d) $users->fetchRow('userID = ?', $users->getAdapter()->quote($userID, 'INTEGER'));  
Run Code Online (Sandbox Code Playgroud)

问题

我明白a)不好,因为根本没有引用.但是其他版本呢,最好的是什么?是c)被视为一个陈述并自动引用或我需要使用d)当我使用?标识?

php sql zend-framework quoting

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

Perl单行单引号

我使用Perl单行创建一个SQL语句,但我不能包含单引号.

这就是我想要的:首先提交并添加引号.

echo "a,b" | perl -F',' -lane 'print $F[0];'
 'a'
Run Code Online (Sandbox Code Playgroud)

我尝试了几种不同的方法,但它对我不起作用.

1.

echo "a,b" | perl -F',' -lane 'print qq('$F[0]');'
[0]
Run Code Online (Sandbox Code Playgroud)

2.

echo "a,b" | perl -F',' -lane 'print q('$F[0]');'
[0]
Run Code Online (Sandbox Code Playgroud)

这是另一个有趣的.

它使用print语句打印单引号,但如果我为变量赋值并打印它不起作用.

perl -lwe "print q( i'am );"
 i'am

perl -lwe "$b=q( didn't ); print $b"
Run Code Online (Sandbox Code Playgroud)

你能帮助我理解我们如何在Perl单行中使用单引号和双引号?

shell perl quoting

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

python子进程中的rsync + ssh在目录名称中出现空格错误

当我运行Python应用程序(在本地同步远程目录)时,如果包含我的应用程序的目录的名称中包含一个或多个空格,则会出现问题。目录名称显示在ssh选项中,例如“ -o UserKnownHostsFile=<path>”和“ -i <path>”。我试图在生成命令字符串的函数中双引号路径,但是什么也没有。我也尝试替换这样的空格:path.replace(' ', '\\ '),但是不起作用。请注意,我的代码适用于不带空格的目录名。ssh返回的错误是“行尾有垃圾”(代码12)。生成的命令行似乎还可以。

rsync -rztv --delete --stats --progress --timeout=900 --size-only --dry-run \
    -e 'ssh -o BatchMode=yes \
    -o UserKnownHostsFile="/cygdrive/C/Users/my.user/my\ app/.ssh/known_hosts" \
    -i "/cygdrive/C/Users/my.user/my\ app/.ssh/id_rsa"'
    user@host:/home/user/folder/ "/cygdrive/C/Users/my.user/my\ app/folder/"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢!

python ssh rsync quoting

4
推荐指数
2
解决办法
2550
查看次数

Java Regex:看后面的组没有"明显的最大长度"

我有一个运行的服务,它使用发送给它的正则表达式并使用它从字符串中检索一个值.

我可以在类中创建一个main方法并调试正则表达式(?<=\\().+?(?=\\){1}),它可以很好地工作.

但是,只要我在tomcat中部署它以远程测试,我就会得到以下异常:

Look-behind group does not have an obvious maximum length near index 19
(?<=\\().+?(?=\\){1})
                   ^
Run Code Online (Sandbox Code Playgroud)

这是解析被调用的值的函数:

private String parsePattern(String value, String pattern)
{
    String ret = "";

    Matcher m = Pattern.compile(pattern).matcher(value);
    while (m.find())
    {
        ret = m.group(0);
    }

    return ret;
}
Run Code Online (Sandbox Code Playgroud)

是什么导致它在应用程序中编译,但不能在webapp中工作?

编辑:

这与任何字符串失败,但当前正在检查的字符串是:"(Group Camp Renovation)"

当调用from时main,该方法返回"Group Camp Renovation",当通过webapp调用时,它会抛出异常.

java regex quoting

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

如何对现有的bash变量进行ANSI C引用?

我看过这个问题,但它不包括我的用例.

假设我有一个foo包含四个字符文字的变量\x60.

我想对此变量的内容执行ANSI C Quoting并将其存储到另一个变量中.bar

我尝试了以下,但没有一个达到预期的效果.

bar=$'$foo'   
echo $bar     
bar=$"$foo"     
echo $bar       
Run Code Online (Sandbox Code Playgroud)

输出:

$foo
\x61
Run Code Online (Sandbox Code Playgroud)

期望的输出(实际值\x61):

a
Run Code Online (Sandbox Code Playgroud)

如何在一般情况下实现此目的,包括不可打印的字符?请注意,在这种情况下a,仅用作示例,以便更容易测试方法是否有效.

bash sed quoting

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

ggplot 处理引用变量

ggplot()对数据框进行操作后生成绘图时,我遇到了一个意外问题。我提供了一个说明性的例子:

func <- function(){  
library(ggplot2)
df <- read.table(....)
# perform operation on df to retrieve column of interest index/number
column.index <- regexpr(...)   
# now need to find variable name for this column
var.name <- names(df)[column.index]
# also need to mutate data in this column
df[,column.index] <- df[,column.index] * 10
# generate plot
plot <- ggplot(data, aes(x=var.name))+geom_bar()
print(plot)
}
Run Code Online (Sandbox Code Playgroud)

这里 ggplot 会抛出一个错误,因为它var.name被引用了,例如,“mpg”。知道如何解决这个问题吗?

编辑:从这个问题测试的解决方案无济于事。

quotes r quoting ggplot2 dataframe

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

警告:格式字符串在字符串体中包含'\ 0'[-Wformat]

system()我的代码里面有一个使用awk 的命令.我无法弄清楚如何解决\x00十六进制值的问题.显然他们需要以不同的方式被终止,但这超出了我所知道的范围.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]) {

    char command[128];
    snprintf(command, sizeof(command), "awk '{ gsub (/\xAB\x00\x00\xBC/,\"\xBC\x00\x00\xAB\") ; print }' %s", argv[1]);
    system(command);

}
Run Code Online (Sandbox Code Playgroud)

警告/错误:

>  test.c:8:56: warning: format string contains '\0' within the string body [-Wformat]
>  snprintf(command, sizeof(command), "awk '{ gsub (/\xAB\x00\xBC/,\"\xBC\x00\x00\xAB\") ; print }' %s", argv[1]);
>  /usr/include/secure/_stdio.h:57:62: note: expanded from macro 'snprintf'
>  __builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__)
                                                              ^
  1 warning generated.
  sh: -c: line 0: unexpected …
Run Code Online (Sandbox Code Playgroud)

c string system quoting

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

BASH 脚本:何时包含反斜杠符号

我正在编写一个 BASH 脚本并且我正在使用bash命令。以下哪一项是正确的(或都不正确)?

bash $pbs_dir/${module_name}.${target_ID}.${instance_ID}.pbs
Run Code Online (Sandbox Code Playgroud)

或者

bash \$pbs_dir/\${module_name}.\${target_ID}.\${instance_ID}.pbs
Run Code Online (Sandbox Code Playgroud)

bash symbols quoting backslash

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

使用 pandas to_csv 仅引用所需的列

我需要使用 pandas to_csv 函数生成一个 csv。我试过quote=csv.QUOTE_NONNUMERIC。但是对于日期时间列之一,我不需要双引号。

有没有办法选择我们想要双引号的列?

python csv quoting export-to-csv pandas

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

CakePHP 3 + ORM 查询构建器和列名转义

Ave 已经将一些应用程序从 CakePHP 2 重写为 CakePHP 3。我在数据库中有一些结构,列:key(自动生成的键字符串)。在 mysql 中,key 是一个关键字,所以当我写一个 SQL 查询时,我必须将它转义为

INSERT INTO table (`key`) VALUES (....)
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我尝试保存实体时,我收到一个错误:

[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'key, 
Run Code Online (Sandbox Code Playgroud)

该错误在 Cake\ORM\Table 中的 _insert() 方法中触发:

$statement = $this->query()->insert(array_keys($data))
        ->values($data)
        ->execute();
Run Code Online (Sandbox Code Playgroud)

任何建议如何避免这种情况?CakePHP 版本 3.5.11

sql cakephp reserved-words quoting cakephp-3.x

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