2016-12-07 6 views
0

こんにちは私は値(コメント)をテーブルに挿入しようとしている初心者です。前に挿入機能を完了しましたが、今回は値が挿入されません。値のいずれかが挿入されていると思われますが、now()が原因です。 エラーが挿入された後、var_dump(ini_get('error_log'));がブラウザに表示されたときにstring(0) ""を生成しました。 私もDATE_TIME as shown herehereする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 */; 
+0

あなたのコードは、[SQLベースに弱い複製しようとしていたので、私は挿入できませんでしたので、ユーザーIDとベンダーIDが実際に別のメンバーによって主キーとして設定されていることが分かりました注射](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。 Prepared、Parameterized Queriesを使用してください。 –

答えて

0

私のスキーマを読んで、私は、主キー

0

は、INSERTクエリ上で動作するテーブルのトリガを作成してみてください。

CREATE TRIGGER `triggername` BEFORE INSERT ON `vendorcomments` FOR EACH ROW SET NEW.commentdate = NOW();

その後、あなたは単純にタイムスタンプを挿入することなく、あなたのクエリを実行することができます。 :)

関連する問題