Mysql 喜欢计数1,但不要在db中计数
我被告知试着写一篇新文章,更好地解释 我的网页上有一个上传功能。我想从名为filter的数据库中屏蔽某些标题。但是它不起作用 php端看起来像这样Mysql 喜欢计数1,但不要在db中计数,mysql,Mysql,我被告知试着写一篇新文章,更好地解释 我的网页上有一个上传功能。我想从名为filter的数据库中屏蔽某些标题。但是它不起作用 php端看起来像这样 $DB->query("SELECT COUNT(*) FROM filter WHERE '". $Properties['Title'] ."' LIKE CONCAT('%', filter, '%')"); if($DB->record_count() != 0) { $Err = '<b>you cant u
$DB->query("SELECT COUNT(*) FROM filter WHERE '". $Properties['Title'] ."' LIKE CONCAT('%', filter, '%')");
if($DB->record_count() != 0) {
$Err = '<b>you cant upload this!</b>';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
所有这些都导致了500个内部服务器错误,正如我从一个查询中看到的那样,您希望查找输入了类似用户(或其他人)标题的现有记录。
SELECT id FROM filter WHERE 'filter' LIKE CONCAT('%', '" . $Properties['Title'] . "', '%')
if($DB->record_count() != 0) {
$Err = '<b>You cant upload!</b>';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
}
}
SELECT COUNT(*) as 'count' FROM filter WHERE 'filter' LIKE CONCAT('%', '" . $Properties['Title'] . "', '%')
if($DB->record_count() != 0) {
$Err = '<b>You cant upload!</b>';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
}
}
SELECT COUNT(*) as count FROM filter WHERE 'filter' LIKE CONCAT('%', '" . $Properties['Title'] . "', '%')
if($DB->record_count() != 0) {
$Err = '<b>You cant upload!</b>';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
}
}
这里有两个错误:
WHERE
子句。之后是表字段的名称,而不是值
过滤器
在CONCAT中是什么?它的价值是什么filter
为column\u title
。
您正在表格过滤器中查找已经存在的标题.White.Tiger.Test.Dawe.avi。
查询应如下所示:
选择COUNT(*)作为过滤器中的COUNT,其中“column_title”如CONCAT(“%”、“.White.Tiger.Test.Dawe.avi”、“%”)等。
查询后,您必须检查count
的值,并将其与1进行比较。如果等于或大于1-您已经拥有此标题。Else-标题不在表中,您可以执行添加或其他操作
更新:
正如我看到的实际表结构一样,您应该将列标题
替换为过滤器
:
<代码> >从“筛选器”中选择计数(*)作为计数,如“CONTACT”('%%),'.Wal.Tig.Test.DuW.Avi','%') > <代码> > < /C> >表字段的名称,而不是值。考虑与我们共享您的表结构。Oouupp I键入错误…它会阻止.White.Tiger.Test.Dawe.avi的上传,但它也会阻止.White.Dog.Test.soen.avi,但如果我从过滤器中运行SELECT COUNT(*),其中为“.”。White.Dog.Test.soen.avi。“”像CONCAT(“%”,filter“%”),我在pma查询表结构id int(11)Nej None AUTO_INCREMENT 2 filter varchar(255)中得到0的计数latin1_swedish_Ciu如果我理解正确,php中的查询应该是这样的选择COUNT(*)as COUNT FROM filter,其中'filter'像CONCAT('%','$Properties['Title'],'%'),如果($DB->record_COUNT()!=0){$Err='youcan upload this!';include(SERVER_ROOT./sections/upload/upload.php');die();您是对的。但如果您选择的是COUNT(*)
mysql查询结果将始终有一行。count
的值将存储在这一行中。因此,我假设record\u count
对于任何查询都将始终返回1。因此,您必须使用另一种方法精确获取count
的值。您如何进行db查询,以便它仅在出现以下情况时拒绝上载d筛选器列中的匹配项?正如我已经说过的,使用我的原始查询选择COUNT(*)作为筛选器中的COUNT,其中的'filter'如CONCAT('%','The.White.Tiger.Test.Dawe.avi','%')
-但这里必须获得COUNT的值。或者类似这样:从筛选器中选择id,其中的'filter'如CONCAT'(“%”、“.White.Tiger.Test.Dawe.avi”、“%”)
-在这里您将获得精确的数据行。record\u count
将返回行数。也有一些错误。我在mysql上得到了服务器错误,选择count(*)作为来自过滤器的计数,其中“filter”如CONCAT(“%”、“$Properties['Title]”、“%”)我是不是忘了什么东西&可能的事[‘标题’]?