大家好我是php的新手,我发现对于数据库连接你直接输入你的密码到.php文件("mysql_connect($ host,$ user,$ pass,$ db)).我读到了哈希和我我将使用哈希,但问题是用户是否可以下载预编译的.php文件并查看我的源代码,从而得到我的数据库密码.如果他写"domain/home"我有一个index.php文件阻止用户进入目录.提前谢谢.
我正在研究Scala数据库框架/包装器,并在Twitter上遇到了Gizzard.虽然我一开始印象深刻,但在阅读限制时我冷却了.他们说你所做的所有数据库操作都必须是幂等的和可交换的.如果我理解得当,这基本上几乎没有留下任何东西.例如,如果我有一个带整数计数器的实体,则必须递增.我可以使用"增量"操作,也可以使用"设置"操作.但是增量不是幂等的(如果你运行它两次,你得到一个不同的结果然后运行一次),并且set不会是可交换的(设置前5然后2给出不同的结果然后设置前两个然后设置5).那么"插入 - 如果缺席"还有什么区别,这对大多数用例来说都不是很有用.分布式数据库框架有何局限性,以至于你基本上无法对它做任何有用的事情?我必须遗漏一些重要的东西.
[编辑]除了"insert-if-absent"(以及"delete-if-present")之外,我认为"compare-timestamp-and-set"既是幂等的又是可交换的,如果更改排队而不是丢弃,什么时候"以前的变化"仍然缺失.但我不知道是否有任何数据库实现了这一点.
我编写了一个实用程序来处理为手动sql查询添加数据参数的值.消费看起来像
utility.Add("SELECT * FROM MyTable WHERE MyColumn = {0}", myVariable, DBType.TheType);
Run Code Online (Sandbox Code Playgroud)
要么
utility.Add("UPDATE MyTable SET MyColumn = {0}", myVariable, DBType.TheType);
Run Code Online (Sandbox Code Playgroud)
如何处理myVariable的空值?
可选的红利问题:如果这些论点是由三位政治候选人提出的,他们的政党会是什么?(请说明这些政党的母国)
我知道Hibernate在幕后使用JDBC,但它是如何做到这一点/它在哪里做到这一点?
我是PHP,AJAX和数据库的新手.
但我想知道程序员的想法和行为的经验.
使用AJAX时,您是否担心禁用JavaScript的用户?
你有备份解决方案吗?或者那些禁用JavaScript的人数如此之小以至于不是一个问题?
哇我得到了很多意见,这很好,但我认为对我来说澄清一点很重要.
我在网站上特别询问AJAX.
在我的网站中使用JavaScript时,我的目标是使用它来增强用户的体验,但要确保网站的核心仍然可以为禁用JavaScript的用户提供服务.但是从我对AJAX的理解来看,它的核心功能是不是?它以PHP的方式与服务器或数据库通信.那你怎么做一个后备呢?或者你呢?
再说一遍,如果我误解了AJAX的作用,请原谅并启发我.
我一直在讨论如何将密码存储在我的数据库中一段时间的问题.这是我第一次使用Web登录创建安全的应用程序,所以我想设置一些好的做法.
首先,我读了哈希和盐腌.似乎这个想法是......
这让我想到了......如果一个黑客知道你的盐(因为它存储在某个地方的数据库中,可能是一个名为this_is_not_the_salt_ur_looking_for或者同样含糊不清的列),他们可以重新生成密码字典并获得访问权限.
然后我有了一个主意.如果你存储在您的盐中的散列密码字段.所以按照步骤1-4(随机生成盐),然后在步骤5中,将盐插入密码解释类或服务已知的密码中:
xxxxxsaltvaluexxxxxxxxxxxxxxxx
其中x是散列字符串值.任何人都可以看到这个问题吗?它完全没必要吗?
答:
没有理由不这样做.正如Yahia所述,其他保护密码的方法包括双(或n)散列.另一方面,BCrypt看起来几乎完全是一种阻止暴力攻击的好方法,但是我找不到一个可靠的C#库
谢谢!
TTD
我只想在MySQL中找到一个数据库结构,以获取所有用户朋友的朋友以及相应的查询来检索它们.(朋友链接是双向的)
我找到了几个与此相关的帖子,但我担心的是性能:
很多帖子都建议一个结构,你有一个表,其中每一行代表一个友情链接,例如:
CREATE TABLE `friends` (
`user_id` int(10) unsigned NOT NULL,
`friend_id` int(10) unsigned NOT NULL,
)
Run Code Online (Sandbox Code Playgroud)
说用户'1'有三个朋友'2','3','4',用户'2'有两个朋友'1','5'.你的朋友表看起来像这样:
user_id | friend_id
1 | 2
1 | 3
1 | 4
2 | 1
2 | 5
Run Code Online (Sandbox Code Playgroud)
朋友的朋友查询:如何选择朋友的朋友可以在这里看到SQL获取用户朋友和朋友的朋友.用户'1'的查询的结果应该给(1,2,3,4,5)
我担心:平均fb用户有大约140个朋友.频繁的用户将拥有更多.如果我有20,000个用户,那么最终将至少有300万行.
如果我可以使用这样的结构:
CREATE TABLE `friends` (
`user_id` int(10) unsigned NOT NULL,
`friend_1` int(10) unsigned NOT NULL,
`friend_2` int(10) unsigned NOT NULL,
`friend_3` int(10) unsigned NOT NULL,
`friend_4` int(10) unsigned NOT NULL,
....
)
Run Code Online (Sandbox Code Playgroud)
我的表看起来像这样(从上面举例):
user_id | friend_1 …Run Code Online (Sandbox Code Playgroud) 我一直在搜索并发现,android只支持SQLite数据库而不是其他.这是真的?
我正在构建一个带有数据库的iPhone应用程序(我很可能第一次使用Core Data,但仍然可以证明我将根据你的答案使用SQLite).
应该从一些在线存储(很可能是MySQL数据库)定期更新此数据库的内容.
由于初始数据库相当大,它将在应用程序中,因此用户无需下载,更新将相当小,以便可以下载.您可以看到"Delta"更新是必须的(每次下载整个数据集的数据太多).更新将包含一些新记录,并最终对现有记录进行一些更正
本地数据库将有一些需要更新的表/实体(它们之间有很多关系),这些表/实体将是只读的(*).将有另外几个表/实体,用户可以在其中输入注释(读/写)但它们永远不必更新,这是私有用户数据.事实上,我有时会创建一个只有1-1关系的额外表,以保持良好的分离(数据集表/实体与注释表/实体).
有人可以为我提供一种在线生成文件的方法,其中包含数据库中的所有更改,可以下载到手机并有效地正确解析,以便应用这些更改/新记录.我一直在想类似于Rails用于维护其数据库的迁移,但似乎找不到任何看起来干净和高效的东西.记住不同表/实体之间的数据关系是非常重要的,这是我的灵感失败...
(*)对于开始只读,稍后用户将能够添加记录并进行编辑.他永远无法编辑现有记录,他自己的记录也不需要返回服务器.
我有一个mysql数据库,其中不断添加大量文本.(每小时10页文本).文本在文本字段中以纯文本格式存储.每行联系一页或两页文本.
我需要定期在此数据库上进行全文搜索(在文本中搜索关键字并执行复杂查询).我只需要搜索新添加的文本.但是添加文本可以立即搜索(一两分钟内)非常重要.
从我所读到的,使用mysql的全文是非常低效的.我知道lucene是一个选项,但我不确定它能以多快的速度索引新文本.
那么我的选择是什么?有没有办法让mysql更有效率?lucene是我最好的解决方案?什么更合适?
谢谢