我有一个搜索查询,其参数根据客户端输入而变化。
await prisma.$queryRaw(`SELECT column FROM table ${condition ? `WHERE column = '${condition}'` :' ' } `)
Run Code Online (Sandbox Code Playgroud)
如何使用准备好的语句编写此查询并避免重复查询。我想出的唯一解决方案如下:
const result = condition ? await prisma.$queryRaw(`SELECT column FROM table WHERE column = $1`,condition) : await prisma.$queryRaw(`SELECT column FROM table`)
Run Code Online (Sandbox Code Playgroud)
这样做的目的是避免第一个查询中的 SQL 注入。
在尝试@Ryan 建议的解决方案后进行编辑, 出现以下错误:
Raw query failed. Code: `22P03`. Message: `db error: ERROR: incorrect binary data format in bind parameter 1`
Run Code Online (Sandbox Code Playgroud)
这是我的实现:
const where = Prisma.sql`WHERE ${searchConditions.join(' AND ')}`;
const fetchCount = await prisma.$queryRaw`
SELECT
COUNT(id)
FROM
table
${searchConditions.length > 0 …Run Code Online (Sandbox Code Playgroud) 在我的一些页面中,我使用getServerSidePropsAPI 调用并在必要时重定向用户。我正在构建的网络应用程序是多语言的,我需要始终向用户显示正确的语言。
主页/使用getServerSideProps并将用户重定向到配置文件或登录页面。为此,我执行以下操作:
return {
redirect: {
permanent: false,
destination: someLogic ? `${context.locale}/login` : `${context.locale}/profile`,
},
};
Run Code Online (Sandbox Code Playgroud)
现在,配置文件和用户页面getServerSideProps也使用来检查是否存在有效会话并在必要时重定向用户。例如,当用户的会话过期时,他将尝试访问个人资料页面,然后他将被重定向到登录页面。如果我将该destination属性设置为/login区域设置属性将被覆盖,用户将获得默认语言并重定向到domain/login. 如果我将其设置为,${context.locale}/login并且最初调用的页面是, domain/fr-FR/profile那么用户将被重定向到domain/fr-FR/fr-FR/login
客户端重定向使用router.push或router.replace工作正常并返回正确的网址。
据我了解,我无法从上下文中获取绝对 URL 来getServerSideProps检查区域设置是否已设置,那么我该如何解决这个问题?
我目前正在使用next 10.0.4,这是我的next.config.js:
module.exports = {
i18n: {
locales: ['de-DE', 'en-US', 'fr-FR', 'nl-NL', 'it-IT'],
defaultLocale: 'en-US',
localDetection: true,
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此链接中的基本 Camera2 在 camera2 预览上绘制一个矩形:https : //github.com/googlesamples/android-Camera2Basic
我在论坛上遵循了这个问题的答案:
用于在相机预览上绘制的 android Camera2 API + TextureView 叠加层
但我无法让它工作。如果您能帮我弄清楚如何解决我的问题,我将不胜感激。这是用于绘制矩形的类:Rectangle.java
package com.example.android.camera2basic;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;
public class Rectangle extends View {
Paint paint = new Paint();
public Rectangle(Context context) {
super(context);
}
@Override
public void onDraw(Canvas canvas) {
paint.setColor(Color.GREEN);
paint.setStyle(Paint.Style.FILL);
Rect rect = new Rect(20, 56, 200, 112);
canvas.drawRect(rect, paint );
}
}
Run Code Online (Sandbox Code Playgroud)
相机activity_camera.xml 的xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud)