小编Ohg*_*why的帖子

MySQL触发器:删除后从表中删除

范围:两张桌子.当创建一个新的顾客时,他们将一些关于它们的信息存储到第二个表中(这也是使用触发器完成的,它按预期工作).这是我的表结构和关系的一个例子.

表1-> 顾客

+-----+---------+-----+
+  id +   name  + val +
+=====+=========+=====+
+  37 +  george +  x  +
+-----+---------+-----+
+  38 +  sally  +  y  +
+-----+---------+-----+
Run Code Online (Sandbox Code Playgroud)

表2 - > patron_info

+----+-----+----------+
+ id + pid +   name   +
+----+-----+----------+
+  1 +  37 +  george  +
+----+-----+----------+
+  2 +  38 +  sally   +
+----+-----+----------+
Run Code Online (Sandbox Code Playgroud)

管理员可以管理顾客.当他们选择移除顾客时,顾客从桌子1中 移除patrons.此时,表2 没有任何反应patron_info.

当表1删除了一个项目时,我只是尝试创建一个从表2中删除的触发器.这是我试过的......

最初,我尝试放下触发器(如果它存在)(只是为了清除空气)......

DROP TRIGGER IF EXISTS log_patron_delete;
Run Code Online (Sandbox Code Playgroud)

然后我尝试创建触发器......

CREATE TRIGGER log_patron_delete AFTER DELETE on …
Run Code Online (Sandbox Code Playgroud)

mysql triggers mysql-error-1046

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

在客户端导航时保留 NextJS 中的查询字符串参数

使用nextjswith next-routes,在页面之间导航时是否可以保留 URL 的查询字符串?我正在运行一个广告活动,由于历史原因和跟踪,我需要在浏览页面时保留它。

我无法将其填充到 Redux 存储、本地主机、会话存储等中。它必须保留在 URL 中。

我尝试了类似以下的操作:

import { Router } from 'routes';

Router.events.on('routeChangeStart', (url: string) => {
  if (Router.query && Router.router.pathname !== url) {
    const href = `${url}${Object.keys(Router.query).reduce(
      (carry: string, key: string) => {
        carry += `${carry === '' ? '?' : '&'}${key}=${Router.query[key]}`;
                return carry;
    },'')}`;

    Router.pushRoute(href, Router.router.pathname, { shallow: true });
  }
});
Run Code Online (Sandbox Code Playgroud)

文件routes.js导出next-routes

const nextRoutes = require('next-routes');  
const routes = (module.exports = nextRoutes());
Run Code Online (Sandbox Code Playgroud)

这里发生的情况是 URL 被正确推送并且查询字符串仍然存在,但只是短暂的闪烁。它立即将原始数据推url …

reactjs next.js

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

shims-tsx.d.ts文件在Vue-Typescript项目中做什么?

使用打字稿创建Vue项目时,包含两个声明文件:shims-vue.d.tsshims.tsx.d.ts

//shims-vue.d.ts

declare module "*.vue" {
  import Vue from 'vue';
  export default Vue;
}
Run Code Online (Sandbox Code Playgroud)

和:

//shims-tsx.d.ts

import Vue, { VNode } from 'vue';

declare global {
  namespace JSX {
    // tslint:disable no-empty-interface
    interface Element extends VNode {}
    // tslint:disable no-empty-interface
    interface ElementClass extends Vue {}
    interface IntrinsicElements {
      [elem: string]: any;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在创建一个小项目(没有Vue CLI)时,我忘记包含第二个项目(shims.tsx.d.ts),并且我的项目可以编译并按预期运行(没有错误)。

我发现了与此相关的帖子:https : //github.com/vuejs/vue-cli/issues/1198,但希望进行更多说明。

我很好奇这个文件的作用以及为什么包含它?换句话说,如果我不包括此声明文件,我将不得不“破坏”我的应用程序。

谢谢!

typescript vue.js

14
推荐指数
2
解决办法
3289
查看次数

文件预览违反内容安全策略

这很奇怪,我已经检查并尝试了很多无济于事的事情。

我有一个简单的文件上传,它在上传之前显示图像。这在我的本地开发环境中运行良好,在登台服务器上也运行良好。

在生产服务器上,它不起作用。这是我的控制台中显示的内容:

拒绝加载图像“blob:https : //example.com/a7ced718-483b-4bc2-9db0-f012c8c6af5a ”,因为它违反了以下内容安全策略指令:“img-src‘self’数据:

但是,我没有定义 CSP,它在用于分段测试错误的精确副本服务器上运行良好。

此外,我尝试在文档头部的元标记中添加一个 CSP,但它也没有解决问题。这是我尝试实施的 CSP:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';">
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么这可能不起作用?

html google-chrome content-security-policy

6
推荐指数
1
解决办法
1610
查看次数

如何在4个表中使用Laravel的hasManyThrough

我有4个表,结构和流程如下:

User
Accounts
Contacts
Orders
Run Code Online (Sandbox Code Playgroud)

关系如下:

$用户>的hasMany( '账户') - >的hasMany( '接触') - >的hasMany( '订单');

/** User Model **/
class User extend Eloquent {
    public function accounts(){
        return $this->hasMany('Accounts');
    }

    public function contacts(){
        return $this->hasManyThrough('Contact', 'Account', 'owner_id');
    }

    //how do I get this?
    public function orders(){

    }
}

/** Account Model */
class Account extends Eloquent {
    public function $user(){
        return $this->belongsTo('User');
    }
    public function contacts(){
        return $this->hasMany('Contact');
    }
}

/** Contact Model **/
class Contact extends Eloquent {
    public function …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 laravel-5.2

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

MySQL UUID 替代方案 - 更多随机性

我有一个包含数千行的表,该表有一列guid. 这通常在代码中生成,并且工作正常。

但是,这一次执行了批量导入,并且不包含 UUID 值。我现在需要更新此表,以便它确实具有 UUID 值。

我遇到的问题是,当我在循环中执行以下操作时:

(select uuid())
Run Code Online (Sandbox Code Playgroud)

不够随意。这意味着在内部,机器(名称?)和时间戳用于生成 uuid,这最终导致数十万行接收超级相似的 UUID。

不幸的是,我无法在软件堆栈中生成它,所以我想知道是否有人对此有任何提示或好的解决方案。

编辑对于那些接近的投票:

在数千行(select uuid())update命令中使用时,它依赖于机器(节点)和时间戳。因为成千上万的行在彼此的微秒内更新,这会在所有行中产生一个不幸的相似字符串,例如:

1a5e308e-5530-11e7-a853-932d273ec009
1a5e3160-5530-11e7-a853-932d273ec009
1a5e32a0-5530-11e7-a853-932d273ec009
Run Code Online (Sandbox Code Playgroud)

将是前 3 个 uuid 生成并应用于更新查询中的前 3 行。这是有问题的,因为这些 UUID 用于前端可见的连接字符串的大部分。因此,最终结果是这些变得可以猜测,因此代表了矢量攻击的可能角度。

我提出这个问题的目的是,是否有另一种方法来生成一个 16 个字符、128 个字节的字符串,它遵循与 a 相同的模式UUID,但从一次迭代到下一次迭代可能具有更多的唯一性。

我希望我在这个解释中已经足够清楚了。

mysql

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

获取最新的newspost数据库

我正试图从我的数据库中获取最新的帖子.如果我运行以下代码,我收到以下消息:

"无效的查询:您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在第2行的'新闻邮件或新闻邮件的新闻邮件.post_id DESC'附近使用正确的语法"

<?php
            $getPosts = mysql_query("SELECT newsposts.post_id, newsposts.post 
                     FROM TABLE newsposts 
                 ORDER BY newsposts.post_id DESC 
                    LIMIT 1") or die('Invalid query: ' . mysql_error());
            while($getPosts_Array = mysql_fetch_array($getPosts)){

                $post_id = $getPosts_Array['post_id'];
                $post = $getPosts_Array['post'];

                echo "  
                            $post;


                ";
            }
        ?>
Run Code Online (Sandbox Code Playgroud)

php mysql

0
推荐指数
1
解决办法
51
查看次数