gpt4 book ai didi

php - 列计数与第 1 行的值计数不匹配 - 检查 MySQL 中的某些列是否唯一

转载 作者:行者123 更新时间:2023-11-30 01:29:43 25 4
gpt4 key购买 nike

我有一篇具有不同标题/别名的帖子。现在,当用户添加帖子时,我想检查是否已有具有该标题的帖子。

我的表格如下所示:

       +----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| Titel | varchar(50) | NO | | NULL | |
| Alias1 | varchar(50) | YES | | NULL | |
| Alias2 | varchar(50) | YES | | NULL | |
| Alias3 | varchar(50) | YES | | NULL | |
| Alias4 | varchar(50) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+

发送添加公式后,我检查标题,如下所示:

include('./includes/database.php');
$sql = 'SELECT
Titel
FROM
Posts
WHERE
Titel = \''.$titel.'\' OR
Alias1 = \''.$titel.'\' OR
Alias2 = \''.$titel.'\' OR
Alias3 = \''.$titel.'\' OR
Alias4 = \''.$titel.'\' OR
Titel = \''.$titel2.'\' OR
Alias1 = \''.$titel2.'\' OR
Alias2 = \''.$titel2.'\' OR
Alias3 = \''.$titel2.'\' OR
Alias4 = \''.$titel2.'\' OR
Titel = \''.$titel3.'\' OR
Alias1 = \''.$titel3.'\' OR
Alias2 = \''.$titel3.'\' OR
Alias3 = \''.$titel3.'\' OR
Alias4 = \''.$titel3.'\' OR
Titel = \''.$titel4.'\' OR
Alias1 = \''.$titel4.'\' OR
Alias2 = \''.$titel4.'\' OR
Alias3 = \''.$titel4.'\' OR
Alias4 = \''.$titel4.'\' OR
Titel = \''.$titel5.'\' OR
Alias1 = \''.$titel5.'\' OR
Alias2 = \''.$titel5.'\' OR
Alias3 = \''.$titel5.'\' OR
Alias4 = \''.$titel5.'\'
LIMIT
1';
$result = $db->query($sql);
if (!$result) {
die ('Can\'t send: '.$sql."<br />\nError: ".$db->error);
}
if ($result->num_rows) {
$row = $result->fetch_assoc();
$errorcounter++;
$errors[$errorcounter] = '<p id="info" class="error">Already exists:<br><a href="./index.php?post='.$row['Titel'].'">'.$row['Titel'].'</a></p>';
}

但我认为这不是最好的方法,有人能告诉我如何巧妙地做到这一点吗?

最重要的是:它不起作用,我收到此错误:列计数与第 1 行的值计数不匹配

最佳答案

这有点短,但仍然很无效:

$sql = "SELECT
Titel
FROM
posts
WHERE
Titel IN ('".$titel."','".$titel1."','".$titel2."','".$titel3."','".$titel4."') OR
Alias1 IN ('".$titel."','".$titel1."','".$titel2."','".$titel3."','".$titel4."') OR
Alias2 IN ('".$titel."','".$titel1."','".$titel2."','".$titel3."','".$titel4."') OR
Alias3 IN ('".$titel."','".$titel1."','".$titel2."','".$titel3."','".$titel4."') OR
Alias4 IN ('".$titel."','".$titel1."','".$titel2."','".$titel3."','".$titel4."')
LIMIT
1";

您应该考虑将别名放入单独的表中并将其链接到 Posts 表。因此,您只需检查一个字段。

关于php - 列计数与第 1 行的值计数不匹配 - 检查 MySQL 中的某些列是否唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17611271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com