Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过MySQL模式或PHP检查输入数据?_Php_Mysql_Database_Validation_Schema - Fatal编程技术网

通过MySQL模式或PHP检查输入数据?

通过MySQL模式或PHP检查输入数据?,php,mysql,database,validation,schema,Php,Mysql,Database,Validation,Schema,假设我想检查注释是否重复 我有两个选择: 1创建对数据库的查询并进行检查: 从注释中选择*,其中content=$santized\u content和post\u id=$id 2为注释和post_id创建唯一索引,并捕获MySQL错误 对于我复杂繁忙的应用程序来说,尽可能减少对数据库的查询是很重要的。然而,第一个选项更为常见和可读 你可以把这个问题推广到其他情况。我更喜欢第二种情况 您的PHP脚本将使用更少的代码。 无论注释是否重复,它都会自动检查。 这就是UNIQUE的功能。MySQL肯定

假设我想检查注释是否重复

我有两个选择:

1创建对数据库的查询并进行检查: 从注释中选择*,其中content=$santized\u content和post\u id=$id

2为注释和post_id创建唯一索引,并捕获MySQL错误

对于我复杂繁忙的应用程序来说,尽可能减少对数据库的查询是很重要的。然而,第一个选项更为常见和可读

你可以把这个问题推广到其他情况。

我更喜欢第二种情况

您的PHP脚本将使用更少的代码。 无论注释是否重复,它都会自动检查。
这就是UNIQUE的功能。

MySQL肯定比PHP快。我总是希望对合适的键使用失败的插入或替换,而不是在PHP中进行检查

唯一的例外可能是您的键变得非常复杂,这显然会为针对该表运行的所有查询在MySQL上产生开销。然而,对于这个问题,没有一个一刀切的答案:什么太复杂而不值得去做。这在很大程度上取决于现实生活中的测试