范围:两张桌子.当创建一个新的顾客时,他们将一些关于它们的信息存储到第二个表中(这也是使用触发器完成的,它按预期工作).这是我的表结构和关系的一个例子.
表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) 使用nextjs
with 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 …
使用打字稿创建Vue项目时,包含两个声明文件:shims-vue.d.ts和shims.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,但希望进行更多说明。
我很好奇这个文件的作用以及为什么包含它?换句话说,如果我不包括此声明文件,我将不得不“破坏”我的应用程序。
谢谢!
这很奇怪,我已经检查并尝试了很多无济于事的事情。
我有一个简单的文件上传,它在上传之前显示图像。这在我的本地开发环境中运行良好,在登台服务器上也运行良好。
在生产服务器上,它不起作用。这是我的控制台中显示的内容:
拒绝加载图像“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)
任何人都可以解释为什么这可能不起作用?
我有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) 我有一个包含数千行的表,该表有一列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
,但从一次迭代到下一次迭代可能具有更多的唯一性。
我希望我在这个解释中已经足够清楚了。
我正试图从我的数据库中获取最新的帖子.如果我运行以下代码,我收到以下消息:
"无效的查询:您的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)