我正在使用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
我从JSON对象获取一个字符串数组.我想将这些字符串保存在数据库中,但前提是它们尚未存在.比较DB中已有的内容与我即将输入的内容并排除匹配的最佳方法是什么?
我正在使用PHP和MySQL.
我开始使用谷歌搜索,发现这篇文章讨论了互斥表.
我有一张约有1400万条记录的表格.如果我想以相同的格式添加更多数据,有没有办法确保我想要插入的记录不存在而不使用一对查询(即,一个查询要检查,一个要插入是结果集是空)?
对字段的唯一约束是否保证插入如果已经存在则会失败?
似乎只有一个约束,当我通过php发出插入时,脚本呱呱叫.
我写了这个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代码来解决这个问题..
谢谢