相关疑难解决方法(0)

在MySQL表中设置唯一的列对

我正在使用php-MySQL在后端进行项目.它有各种文章可供浏览,分类为各种类别用户登录系统.
我最近添加了一个监视列表功能,使用户可以将文章添加到他们的监视列表/仪表板中.
我有以下表格.

文章
article-id(int)主要 - 唯一
cat(varchar)
名称(varchar)
subCat(varchar)
description(varchar)
添加日期

用户
用户名(varchar)主要唯一
lname
fname
加入日期

.监视列表
article-id(int)
username(varchar)
date_watch

我们可以看到没有用于监视列表表的唯一键
我想要(username + article-id)一个唯一的对因为每个用户名都存在多于1个文章ID而且反之亦然
我只想插入删除行和它并不需要更新他们
如何防止重复条目?
到现在为止我一直用php检查行数

"SELECT * FROM watchlist WHERE article-id={$id} AND username={$user}"
Run Code Online (Sandbox Code Playgroud)

而如果

mysql_num_rows() >1(not allowed to insert) 
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果错误地执行INSERT命令将是一个重复的条目
如何防止它?
我正在使用phpmyadmin

php mysql

3
推荐指数
1
解决办法
3301
查看次数

如果记录尚不存在,如何添加到MySQL表?

我从JSON对象获取一个字符串数组.我想将这些字符串保存在数据库中,但前提是它们尚未存在.比较DB中已有的内容与我即将输入的内容并排除匹配的最佳方法是什么?

我正在使用PHP和MySQL.

php mysql json duplicates unique-key

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

如何在php MySQL中"插入,如果不存在"

我开始使用谷歌搜索,发现这篇文章讨论了互斥表.

我有一张约有1400万条记录的表格.如果我想以相同的格式添加更多数据,有没有办法确保我想要插入的记录不存在而不使用一对查询(即,一个查询要检查,一个要插入是结果集是空)?

对字段的唯一约束是否保证插入如果已经存在则会失败?

似乎只有一个约束,当我通过php发出插入时,脚本呱呱叫.

php mysql mysqli

-2
推荐指数
1
解决办法
99
查看次数

将大文本文件14.62 GB添加到DATABASE

我写了这个PHP代码:

<?php

$host = "localhost";
$username = "user";
$password = "pass";
$db = "database";

mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
mysql_close;


$lines = explode("\n", file_get_contents("textfile.txt"));
foreach($lines as $pass => $password)
{
  $string = trim($password);
$md5hash = md5($string);
$sha1hash = sha1($string);
$res = mysql_query("INSERT INTO `md5` VALUES ('', '$password', '$md5hash', '$sha1hash')") or die(mysql_error());

}
?>
Run Code Online (Sandbox Code Playgroud)

但我还是得到了

允许的内存大小为734003200字节耗尽

致命错误:内存不足(已分配262144)(尝试分配15696126973字节)

我尝试了很多解决方案,但这没有帮助!有没有办法通过更改或添加PHP代码来解决这个问题..

谢谢

php mysql

-3
推荐指数
1
解决办法
87
查看次数

标签 统计

mysql ×4

php ×4

duplicates ×1

json ×1

mysqli ×1

unique-key ×1