안녕하세요 저는 값 (의견)을 표에 삽입하려고하는 초보 프로그래머입니다. 이전에 삽입 기능을 완료했지만 이번에는 값이 삽입되지 않습니다. 삽입 된 값 중 하나가 의심됩니다. now()
이 문제의 원인입니다. 실패 삽입 후 var_dump(ini_get('error_log'));
은 브라우저에 표시 될 때 string(0) ""
을 생성했습니다. I는 DATE_TIME as shown here AND here 될 now()
의 열 값을 편집PHP에 값을 phpmyadmin에 삽입 할 수 없습니다. 오류 : 문자열 (0) ""
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
error_reporting(E_ERROR);
try{
$conn = new mysqli("localhost", "XXXXXXXX_XXX", "XXXXXXX", "XXXXXXX");
$vendorid = $_GET["vendorid"];
$userid = $_GET["userid"];
$comment = $_GET["comment"];
$query = "insert into vendorcomments (comment, commentdate, vendorid, userid)
values ('" . addslashes($comment) . "', now() ,'" . addslashes($vendorid) . "','". addslashes($userid)."')";
$result = $conn->query($query);
if (!$result){
// unsuccessful insert
//$json_out = "[" . json_encode(array("result"=>0)) . "]";
var_dump(ini_get('error_log'));
}
else {
$json_out = "[" . json_encode(array("result"=>1)) . "]";
}
echo $json_out;
$conn->close();
}
catch(Exception $e) {
$json_out = "[".json_encode(array("result"=>0))."]";
echo $json_out;
}
?>
newcomment.php.
추가 참고 사항 :
1) 보낸 매개 변수는 올바른 값, 사용자 ID, 공급 업체 ID 및 모든 값을 보냈 음을 요청하는 것입니다.
2) xmlhttp.status == 200
!
3) 내 vendordetails 스키마 :
-- phpMyAdmin SQL Dump
-- version 4.3.7
-- http://www.phpmyadmin.net
--
-- Host: XXXXXXXXXXXXX
-- Generation Time: Dec 07, 2016 at 08:33 PM
-- Server version: 5.7.15
-- PHP Version: 5.4.45-0+deb7u4
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `XXXXXXXXX`
--
-- --------------------------------------------------------
--
-- Table structure for table `vendorcomments`
--
CREATE TABLE IF NOT EXISTS `vendorcomments` (
`comment` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
`commentdate` datetime(3) NOT NULL,
`vendorid` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`userid` varchar(50) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Dumping data for table `vendorcomments`
--
INSERT INTO `vendorcomments` (`comment`, `commentdate`, `vendorid`, `userid`) VALUES
('eBay is working and its amazing, to be able to gain cashback.', '0000-00-00 00:00:00.000', '2', 'jimmy');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `vendorcomments`
--
ALTER TABLE `vendorcomments`
ADD UNIQUE KEY `vendorid` (`vendorid`), ADD UNIQUE KEY `userid` (`userid`);
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
코드를 복제하려고했기 때문에 다른 회원에 의해 기본 키는 내가 삽입 할 수로 설정되어 있는지 발견 [SQL- 주입] (https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). Prepared, Parameterized Queries를 사용하십시오. –