相关疑难解决方法(0)

Django自定义复杂的Func(sql函数)

在为精确找到Django ORM顺序的解决方案的过程中,我创建了一个自定义的django Func:

from django.db.models import Func

class Position(Func):
    function = 'POSITION'
    template = "%(function)s(LOWER('%(substring)s') in LOWER(%(expressions)s))"
    template_sqlite = "instr(lower(%(expressions)s), lower('%(substring)s'))"

    def __init__(self, expression, substring):
        super(Position, self).__init__(expression, substring=substring)

    def as_sqlite(self, compiler, connection):
        return self.as_sql(compiler, connection, template=self.template_sqlite)
Run Code Online (Sandbox Code Playgroud)

其工作原理如下:

class A(models.Model):
    title = models.CharField(max_length=30)

data = ['Port 2', 'port 1', 'A port', 'Bport', 'Endport']
for title in data:
    A.objects.create(title=title)

search = 'port'
qs = A.objects.filter(
        title__icontains=search
    ).annotate(
        pos=Position('title', search)
    ).order_by('pos').values_list('title', flat=True)
# result is
# ['Port 2', 'port …
Run Code Online (Sandbox Code Playgroud)

python django django-queryset django-annotate

13
推荐指数
3
解决办法
4944
查看次数

使用in子句查询中的参数?

我想使用参数进行查询,如下所示:

SELECT * FROM MATABLE
WHERE MT_ID IN (368134, 181956)
Run Code Online (Sandbox Code Playgroud)

所以我想到这个

SELECT * FROM MATABLE
WHERE MT_ID IN (:MYPARAM)
Run Code Online (Sandbox Code Playgroud)

但它不起作用......

有没有办法做到这一点 ?

我实际上使用的是IBX和Firebird 2.1

我不知道IN子句中有多少参数.

sql delphi firebird

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

在jasperreport中传递SQL"IN"参数列表

我正在研究Jasper Reports,我的查询使用SQL'IN'谓词.

SELECT customer_name AS NAME, 
       id_customer   AS ID 
  FROM customer 
 WHERE customer_role IN ($P{roles})
Run Code Online (Sandbox Code Playgroud)

这里role参数可以有1个或多个整数值,并在生成jasper报告时动态决定.

任何人都可以帮助我如何通过Java程序动态设置'roles'参数的值.

sql jasper-reports

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

ADOdb中的SQL注入和一般网站安全性

我已经做了很多阅读,但仍然不理解100%SQL注入的发生方式!

我想从那些知道基于我的例子的SQL注入的具体例子中看到它,因此它可以被复制,测试和修复.我试过SQL注入我的代码而不能,所以我希望有人来证明我的意思!

1.我认为SQL注入只能通过POST或GET方法进行,这意味着在网站上它应该是帖子形式,例如'注册或搜索'或查询如'search.php?tags = love'?

说这可以注入以下具有POST方法的代码吗?

$name     = trim($_POST['username']);
$mail     = trim($_POST['email']);
$password = trim($_POST['password ']);

   if ($errors == "false") {
    $sql = 
        "INSERT INTO 
           clients 
         SET 
           name='" . mysql_real_escape_string($name) . "',
           mail='" . mysql_real_escape_string($mail) . "', 
           password='" . mysql_real_escape_string(sha1($password)) . "'";
           $connection->execute($sql);

    }
Run Code Online (Sandbox Code Playgroud)

2.另一个有GET方法: rate.php?like&videoID=250&userID=30

$sql = 
    "SELECT 
        videoID 
     FROM 
        likes 
     WHERE 
        videoID = '" .mysql_real_escape_string($videoID). "' AND UID = '" .mysql_real_escape_string($userID). "' LIMIT 1";
        $connection->execute($sql);
Run Code Online (Sandbox Code Playgroud)

请帮助那些对主题感到自由的人,但请使用具体的例子.

提前谢谢,
伊利亚

php mysql security sql-injection adodb

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

PDO登录脚本始终重定向到页眉页面

<?php
    include "config.php";
    class Users extends Config {
        public function login($username, $password) {
            try {
                $this->db->beginTransaction();
                $stmt = $this->db->prepare("SELECT `username`, `password` FROM `users` WHERE `username` = ? AND `password` = ? LIMIT 1");
                $stmt->execute(array($username, $password));
                if($stmt->rowCount == 1) {
                    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                        header("Location: index.php?p=loggedin");
                        exit();
                    }
                } else {
                    header("Location: index.php?p=false");
                    exit();
                }
                $this->db->commit();
            } catch(PDOException $ex) {
                $this->db->rollBack();

                echo $ex->getMessage();
            }
        }
    }
    $users = new Users();
?>
Run Code Online (Sandbox Code Playgroud)

如您所见,我的代码有两种header()方法,其中一种方法重定向到登录页面,而另一种方法重定向到错误页面.
我相信据我所知,我的脚本应该根据我的输入重新定向到登录页面,这是正确的,但它的行为方式是出乎意料的.
它会重定向到错误页面而不是登录页面.请看一看,告诉我它不起作用的原因?谢谢!此外,如果您发现我的代码中存在任何缺陷,请随意提出一些批评,因为我希望改善自己.非常感谢.

php pdo

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

完成后,带有输入的ASP.NET jQuery Ajax表保存

我有一个充满输入文本的表,它们看起来像这样:

<input type='text' value='{Value}' id='{Model.ID}' class='ChckNumber' />
Run Code Online (Sandbox Code Playgroud)

类名称根据它是什么列而不同,Model.ID根据行而不同,并且列基于列和行是不同的.

当输入文本变得没有聚焦时,我调用api来更新用户输入的值,如下所示:

$("input[type=text]").on("focusout", function () {

        var id = $(this).attr("id");
        var column = $(this).attr("class");
        var value = $(this).val();

        if (typeof id !== "undefined" && typeof column !== "undefined" && typeof value !== "undefined") {

            $.ajax({
                url: "/api/Action/UpdateTable?id=" + id + "&column=" + column + "&value=" + value,
                type: "GET",
                error: function (request, status, error) {
                    InsertLogEntry(request.responseText + " From API Call /api/Action/UpdateTable");
                },
                success: function (data) {
                }
            });
        }

    });
Run Code Online (Sandbox Code Playgroud)

这是API控制器的调用:

[HttpGet] …
Run Code Online (Sandbox Code Playgroud)

asp.net ajax jquery

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

如何获取和播放存储为MySQL BLOB的WAV文件?

我想使用PHP和Zend-Framework获取并播放存储在MySql Db中的WAV文件.但我无法这样做.我想分两步完成:1.将BLOB转换为.wav文件2.在新窗口中播放.wav文件.

请帮我............

提前致谢......

php mysql database zend-framework

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

删除PHP Cookie?

我目前有一个cookie设置如下:

setcookie("username",$username,time()+3600*24*5);
Run Code Online (Sandbox Code Playgroud)

我将如何清除该cookie的值,以便不再填写用户的用户名?

我把它清除如下:

setcookie("username","",time()-60000);
Run Code Online (Sandbox Code Playgroud)

用户的用户名仍然会出现.

HTML表单:

<?php
    session_start();

    $username = NULL;
    $password = NULL;

    if(isset($_SESSION['username'])){
        $username = $_COOKIE['username'];
        $password = $_COOKIE['password'];
    }
?>
<html>
    <title>Login</title>
    <body bgcolor='#000000'>
        <font color="white">
    <H2><div align='center'>Login</div></H2>
    <form align='center' action='login.php' method='POST'>
            Username: <input type='text' name='username' value='<?$_COOKIE['username']?>'><br \>
            Password: <input type='password' name='password' value='<?$password?>'><br \>
            Remember Me <input type='checkbox' name='remember' value='rememberme'><br \>
            <input type='submit' value='Login'>
        </form>
        </font>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

用于处理表单的PHP脚本:

<?php
    session_start();

    $username = $_POST['username'];
    $password = $_POST['password'];

    //Hash password in a new variable
    $password2 = md5($password); …
Run Code Online (Sandbox Code Playgroud)

php session-cookies

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

如何在Django中创建/使用自定义数据库函数

序幕:

这是SO中经常出现的问题:

并且可以应用于上述以及以下内容:

我想在SO文档上撰写一个例子,但是自2017年8月8日关闭以来,我将按照这个广泛赞成和讨论的元回答的建议,并将我的例子写成一个自我回答的帖子.

当然,我也很乐意看到任何不同的方法!


题:

的Django/GeoDjango内置有一些数据库功能,如Lower()MakeValid()它可以像这样使用:

Author.objects.create(name='Margaret Smith')
author = Author.objects.annotate(name_lower=Lower('name')).get()
print(author.name_lower)
Run Code Online (Sandbox Code Playgroud)

有没有办法根据现有的数据库函数使用和/或创建自己的自定义数据库函数,如:

如何在Django/GeoDjango ORM中应用/使用这些功能?

python database django geodjango django-database-functions

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

在将数据插入依赖于FOREIGN KEY的MySQL表中时,是否有必要每次都执行附加的SELECT和INSERT IGNORE查询?

我有4个MySQL表,通过FOREIGN KEY相互依赖

请检查以下表结构的架构:

CREATE DATABASE IF NOT EXISTS courses
    CHARACTER SET latin1
    COLLATE latin1_bin;

CREATE TABLE IF NOT EXISTS courses.institution
(
    icode INT UNSIGNED NOT NULL AUTO_INCREMENT,
    iname VARCHAR(255) NOT NULL,
    PRIMARY KEY (icode),
    UNIQUE (iname)
)
    ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS courses.cities
(
    ccode INT UNSIGNED NOT NULL AUTO_INCREMENT,
    cname VARCHAR(255) NOT NULL,
    PRIMARY KEY (ccode),
    UNIQUE (cname)
)
    ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS courses.skills
(
    scode INT UNSIGNED NOT NULL …
Run Code Online (Sandbox Code Playgroud)

php mysql foreign-keys

7
推荐指数
2
解决办法
332
查看次数