相关疑难解决方法(0)

如何使用LIKE语句创建PDO参数化查询?

这是我的尝试:

$query = $database->prepare('SELECT * FROM table WHERE column LIKE "?%"');

$query->execute(array('value'));

while ($results = $query->fetch()) 
{
    echo $results['column'];
}
Run Code Online (Sandbox Code Playgroud)

php pdo

100
推荐指数
5
解决办法
9万
查看次数

如何显式引用字符串值(Python DB API/Psycopg2)

出于某些原因,我想明确引用字符串值(成为构造的SQL查询的一部分),而不是等待cursor.execute方法对其第二个参数的内容执行的隐式引用.

通过"隐含引用"我的意思是:

value = "Unsafe string"
query = "SELECT * FROM some_table WHERE some_char_field = %s;"
cursor.execute( query, (value,) ) # value will be correctly quoted
Run Code Online (Sandbox Code Playgroud)

我更喜欢这样的东西:

value = "Unsafe string"
query = "SELECT * FROM some_table WHERE some_char_field = %s;" % \
    READY_TO_USE_QUOTING_FUNCTION(value)
cursor.execute( query ) # value will be correctly quoted, too
Run Code Online (Sandbox Code Playgroud)

这是READY_TO_USE_QUOTING_FUNCTIONPython DB API规范所期望的低级别(我在PEP 249文档中找不到这样的功能).如果没有,也许Psycopg2提供这样的功能?如果没有,也许Django提供这样的功能?我不想自己写这样的功能......

python sql django psycopg2

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

节点MySQL转义LIKE语句

如何在node-mysql中转义MySQL LIKE语句?

有点像

"SELECT * FROM card WHERE name LIKE '%" + connection.escape(req.body.search) + "%'"
Run Code Online (Sandbox Code Playgroud)

结果是

'SELECT * FROM card WHERE name LIKE \'%\'hello\'%\''
Run Code Online (Sandbox Code Playgroud)

这是语法错误.如果我使用替代语法

connection.query("SELECT * FROM card WHERE name LIKE '%?%'", req.body.search, function () {});
Run Code Online (Sandbox Code Playgroud)

导致类似的语法错误.我也试过了

connection.query("SELECT * FROM card WHERE name LIKE ?", '%' + req.body.search + '%', function () {});
Run Code Online (Sandbox Code Playgroud)

这最终会逃脱'%'的标志.

javascript mysql node.js node-mysql

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

如何使用PDO进行搜索?

为了使用PDO进行LIKE搜索,我需要%在传递参数之前将其添加到参数中.

这有效:

$qry = ' 
    SELECT product_id
    FROM cart_product
    WHERE product_manufacturer_num LIKE :search_string
';
$sth = $this->pdo->prepare($qry);
$sth->execute( array("search_string"=>'%'.$search_string.'%') );
Run Code Online (Sandbox Code Playgroud)

对我而言,这更像是一种黑客攻击,是否有更正式的方式来做到这一点?

php pdo

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

SQLAlchemy错误:输入变量时"参数格式不能混合"

我有一个Python脚本,通过SQLAlchemy的connection.execute函数运行pgSQL文件.这是Python中的代码块:

results = pg_conn.execute(sql_cmd, beg_date = datetime.date(2015,4,1), end_date = datetime.date(2015,4,30))
Run Code Online (Sandbox Code Playgroud)

这是变量在我的SQL中输入的区域之一:

WHERE
    (   dv.date >= %(beg_date)s AND
        dv.date <= %(end_date)s)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到一个神秘的python错误:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) argument formats can't be mixed
Run Code Online (Sandbox Code Playgroud)

...然后是有问题的SQL查询的大量转储.我以前使用相同的变量约定运行这个确切的代码.这次为什么不工作?

python sql postgresql sqlalchemy psycopg2

5
推荐指数
3
解决办法
3584
查看次数

标签 统计

pdo ×2

php ×2

psycopg2 ×2

python ×2

sql ×2

django ×1

javascript ×1

mysql ×1

node-mysql ×1

node.js ×1

postgresql ×1

sqlalchemy ×1