【问题标题】:Mysql queries works fine in local host but not in serverMysql 查询在本地主机上运行良好,但在服务器上运行良好
【发布时间】:2020-02-25 08:04:10
【问题描述】:

我正在尝试将一些图像与一些数据一起上传到我的数据库,当我在 localhost 中执行此操作时,一切正常。但是在服务器上,只有一些查询可以正常工作。但其他人没有工作。

这是我的数据库pages 表和papertag

CREATE TABLE `pages` 
(
    `pageId` int(10) NOT NULL, 
    `paperId` varchar(255) NOT NULL, 
    `filePath` varchar(255) NOT NULL, 
    `fileType` varchar(20) NOT NULL,
    `status` enum('0','1') NOT NULL,
    `dateAndTime` datetime NOT NULL,
    `description` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `pages`
--
ALTER TABLE `pages`
  ADD PRIMARY KEY (`pageId`), 
  ADD KEY `paperId` (`paperId`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `pages`
--
ALTER TABLE `pages`
  MODIFY `pageId` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=324;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `pages`
--
ALTER TABLE `pages`
  ADD CONSTRAINT `pages_ibfk_1` FOREIGN KEY (`paperId`) REFERENCES `papers` (`paperId`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;

--纸标签------

CREATE TABLE `papertag` 
(
    `tagId` int(11) NOT NULL,
    `paperId` varchar(255) NOT NULL,
    `tagName` varchar(255) NOT NULL,
    `des` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `papertag`
--
ALTER TABLE `papertag`
  ADD PRIMARY KEY (`tagId`),
  ADD KEY `paperId` (`paperId`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `papertag`
--
ALTER TABLE `papertag`
  MODIFY `tagId` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=460;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `papertag`
--


 ALTER TABLE `papertag`
      ADD CONSTRAINT `papertag_ibfk_1` FOREIGN KEY (`paperId`) REFERENCES `papers` (`paperId`) ON DELETE CASCADE ON UPDATE CASCADE;
    COMMIT;

这是我在 PHP 文件中的 SQL 查询代码

$up22 = mysqli_query($connection, "INSERT INTO papertag(`paperId`, `tagName`) VALUES ('{$paperId}', '{$nme}')");


$up = mysqli_query($connection, "INSERT INTO pages(`paperId`, `filePath`, `fileType`, `status`, `dateAndTime`) VALUES ('{$paperId}', '{$img_dir}', '{$type}',2 , '{$date}' )");

【问题讨论】:

  • 您应该学习使用带参数的准备好的语句,而不是将变量替换到查询字符串中。您还应该添加错误检查,以便查看查询不起作用的原因。 stackoverflow.com/questions/22662488/…
  • 您遇到什么错误?你还能确保两者都使用相同版本的mysql吗?
  • 由于数字的类型,您可能必须将 '{$paperId}' 替换为 {$paperId}

标签: php mysql


【解决方案1】:

我认为你必须插入所有非空约束的列。例如,您没有插入 des 列。 你需要这个代码:

$up22 = mysqli_query($connection, "INSERT INTO papertag(`paperId`, `tagName`,`des`) VALUES ('{$paperId}', '{$nme}'),'{$des}'");

【讨论】:

  • 当你说行时,我认为你的意思是列。
猜你喜欢
  • 1970-01-01
  • 2017-06-16
  • 2020-08-21
  • 1970-01-01
  • 2017-07-22
  • 2013-06-08
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
相关资源
最近更新 更多