real_escape($_POST['user-6ren">
gpt4 book ai didi

php - Mysql添加重复的varchar

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

$sql = 'insert into forum_post(user, text, topic, categ) values ("'.$mysql->real_escape($_POST['user']).'","'.$mysql->real_escape($_POST['text']).'","'.$mysql->real_escape($_POST['title']).'","'.$mysql->real_escape($_POST['categ']).'")';
$mysql->query($sql);
$sql = 'insert into forum_topic(name, user, categ) values ("'.$mysql->real_escape($_POST['title']).'","'.$mysql->real_escape($_POST['user']).'","'.$mysql->real_escape($_POST['categ']).'")';
$mysql->query($sql);

我试图在 forum_topic 中添加一个新行,其中包含相同的名称(不是主键或唯一键)。但它不会添加,我不知道为什么。 Forum_post 有效。

|------
|Column|Type|Null|Default
|------
|//**id**//|int(10)|No|
|**name**|varchar(16)|No|
|user|varchar(32)|No|
|timestamp|datetime|No|CURRENT_TIMESTAMP
|categ|varchar(16)|No|
|posts|int(10)|Yes|NULL
== Dumping data for table forum_topic

|19|asd|test34|2015-03-26 20:59:12|discuss|NULL
|4|test|test|0000-00-00 00:00:00|introductions|0
|5|test1|test|0000-00-00 00:00:00|introductions|0

那些是列。那些是:id(主要和 AI),名称(是问题),用户,时间戳,类别,number_of_posts。我正在尝试使用“介绍”类别添加名称“asd”。但每次我这样做时,它都会将数据添加到 forum_post 中,甚至不会改变 forum_topic。任何其他值都有效。如果我在名称中添加与“asd”、“test”、“test1”不同的内容,它会起作用。

-- phpMyAdmin SQL Dump
-- version 4.2.7.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Mar 26, 2015 at 09:25 PM
-- Server version: 5.6.20
-- PHP Version: 5.5.15

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `mangacreator_main`
--

-- --------------------------------------------------------

--
-- Table structure for table `forum_topic`
--

CREATE TABLE IF NOT EXISTS `forum_topic` (
`id` int(10) unsigned NOT NULL,
`name` varchar(16) NOT NULL,
`user` varchar(32) NOT NULL,
`timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`categ` varchar(16) NOT NULL,
`posts` int(10) unsigned DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=57 ;

--
-- Dumping data for table `forum_topic`
--

INSERT INTO `forum_topic` (`id`, `name`, `user`, `timestamp`, `categ`, `posts`) VALUES
(4, 'test', 'test', '0000-00-00 00:00:00', 'introductions', 0),
(5, 'test1', 'test', '0000-00-00 00:00:00', 'introductions', 0),
(19, 'asd', 'test34', '2015-03-26 20:59:12', 'discuss', NULL);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `forum_topic`
--
ALTER TABLE `forum_topic`
ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `name` (`name`), ADD FULLTEXT KEY `name_2` (`name`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `forum_topic`
--
ALTER TABLE `forum_topic`
MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=57;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

这才是真正的……我可能放得太多了……

CREATE TABLE `forum_topic` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(16) NOT NULL,
`user` varchar(32) NOT NULL,
`timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`categ` varchar(16) NOT NULL,
`posts` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
FULLTEXT KEY `name_2` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=latin1

从来没有选择名称作为唯一键...而且我不能选择或丢弃它。

最佳答案

您可以通过运行以下查询来删除名称字段上的索引:

ALTER TABLE DROP INDEX `name` ON `forum_topic`;

关于php - Mysql添加重复的varchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29287811/

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