社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

ADyson

ADyson 最近创建的主题
ADyson 最近回复了

您可以通过第二次加入USER数据表来实现这一点。

注意,我使用了现代的内部连接语法,使其更清楚地说明了连接子句适用于什么。我建议您应该尽可能使用现代语法,使您的代码更加清晰。

SELECT 
  g.id, 
  g.guidUser1, 
  u1.username AS username1, 
  g.guidUser2,
  u2.username AS username2
FROM
  games g 
  INNER JOIN userdata u1
    ON g.guidUser1 = u.guidUser
  INNER JOIN userdata u2
    ON g.guidUser2 = 2.guidUser
6 年前
回复了 ADyson 创建的主题 » 使用like子句的mysql搜索不起作用

因为您使用的是准备好的语句,所以不需要在表达式周围使用单引号。更改代码,删除这些引号,以

$query="SELECT * FROM posts WHERE title LIKE ?";
$keywordArray[0]="%".$keywordArray[0]."%";
for($i=1;$i<$n;$i++){
  $keywordArray[$i]="%".$keywordArray[$i]."%";
  $query.=" OR title LIKE ?";
}

它将引号视为参数内值的一部分。所以你最终会使用类似于

SELECT * FROM posts WHERE title LIKE '\'%Something%\''

很明显,这是不匹配的,因为在大多数情况下,数据库中的值在开头和结尾都没有单引号。

有了这些更改,它应该像这样转换成sql

SELECT * FROM posts WHERE title LIKE '%Something%'

这是因为参数化过程会自动为您处理引用和转义作业—这是防止SQL注入攻击的一种方法(顺便说一下,还可以防止由错误的/未转义的引号引起的语法错误)。


p.s.如果一个请求被提交到这个没有提供任何关键字的代码中,那么代码将崩溃,因为它假设 $keywordArray[0] . 可以考虑修改它以验证是否提供了关键字,或者只是循环整个数组,如果没有提交关键字,则根本不向查询添加where子句。

6 年前
回复了 ADyson 创建的主题 » mysql aes_从多个列解密

aes_decrypt函数一次只接受一个值(我的意思是一个加密字符串,加上密码)。另外,如果这些值是单独加密的,那么尝试将它们全部作为一件事解密是没有意义的。

只需分别为每个列调用函数:

SELECT 
  column_a, 
  column_b, 
  column_c, 
  AES_DECRYPT(column_a, 'p4ss0wrd1'),
  AES_DECRYPT(column_b, 'p4ss0wrd1'),
  AES_DECRYPT(column_c, 'p4ss0wrd1')
FROM 
  dates_table1;

文档: https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_aes-decrypt

6 年前
回复了 ADyson 创建的主题 » 1193创建MySQL存储过程时出错

必须先声明变量,然后才能使用它。类似这样的东西,放在begin语句之后(或者至少在尝试使用变量之前的某个时间):

DECLARE p_salida INT DEFAULT 1;

文档: https://dev.mysql.com/doc/refman/8.0/en/declare-local-variable.html

您的格式字符串

'%m/%d/%Y %h:%i:%s'

不正确。按照 documentation 日期格式说明符, %h 以12小时格式表示小时(即01-12)。相反,你需要使用 %H 24小时阅读。正确的格式字符串是

'%m/%d/%Y %H:%i:%s'

Click here for a demo using SQLFiddle