Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的SQL中的日期始终为0000-00-00_Php_Mysql_Json - Fatal编程技术网

Php 我的SQL中的日期始终为0000-00-00

Php 我的SQL中的日期始终为0000-00-00,php,mysql,json,Php,Mysql,Json,我一直在撕扯我的头发,向上帝献祭——做我能做的家庭作业——然而,我和这里的其他两篇文章有着同样的问题,这两篇文章似乎都没有解决 及 当我回显得到正确格式化的值时,我使用的是Date而不是DATETIME MySQL在日期之前正确地输入一个名称,然后还输入一个空白的longblob(图片)-它似乎只是输入了一个字段,或者我没有正确地设置MySQL,或者其他什么 我的代码是 catch(PDOException $e) { echo "Im sorry dave I cant d

我一直在撕扯我的头发,向上帝献祭——做我能做的家庭作业——然而,我和这里的其他两篇文章有着同样的问题,这两篇文章似乎都没有解决

当我回显得到正确格式化的值时,我使用的是Date而不是DATETIME MySQL在日期之前正确地输入一个名称,然后还输入一个空白的longblob(图片)-它似乎只是输入了一个字段,或者我没有正确地设置MySQL,或者其他什么

我的代码是

catch(PDOException $e)
    {
    echo "Im sorry dave I cant do that";
    echo $e->getMessage();
    }

        //*next bit is to insure that if connection is lost database is not  
   partially updated-I think-
        //* $DBHandle->beginTransaction();

        $firstnameOBS= $_POST['touristfirstname'];
        $todaysdateOBS= $_POST['touristdatetoday'];
        $picturenow= $_POST['picturesubmitted'];

        $JSONfirstname = json_encode($firstnameOBS);
        $JSONtodaysdate = json_encode($todaysdateOBS);
        $JSONpicturenow = json_encode($picturenow);
        echo $JSONtodaysdate ;

        //* Below is the send from PHP page to My Sql Server -
                //*  JSON encode here 

    try {    
        $senditin = $DBHandle->prepare("INSERT INTO 
    `Observations`.`fkarnd`(`firstname`,`datetoday`,`picturesubmitted`) VALUES   
 (:firstname 
    , :datetoday ,:picturesubmitted)", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));

        //* $senditin->bindValue(':firstname', $JSONfirstname, PDO::PARAM_STR);
        //* $senditin->bindValue(':datetoday', $JSONtodaysdate, PDO::PARAM_STR);
        //* $senditin->bindValue(':picturesubmitted', $JSONpicturenow,
     PDO::PARAM_LOB);

        //* $myinputarray = array('firstname'=> $JSONfirstname, 'datetoday' => 
    $JSONtodaysdate, 'picturesubmitted' => $JSONpicturenow );

        $DBHandle->beginTransaction();
        $senditin->execute(array('firstname'=> $JSONfirstname, 'datetoday' => 
    $JSONtodaysdate, 'picturesubmitted' => $JSONpicturenow ));
        //* commit allows transaction begun to complete
        $DBHandle->commit();

     }  

    catch ( PDOException $e ) {
      echo "I'm sorry, I can't do that Dave......";
      file_put_contents( 'dbErrors.txt', $e->getMessage(), FILE_APPEND );   
        //* rollback function call here? a nasty exception has appeared,      
     }
        echo "<br>"."successful submission";
        $DBHandle = null;

     ?>
catch(PDO异常$e)
{
echo“对不起,戴夫,我不能那样做”;
echo$e->getMessage();
}
//*下一位是确保若连接丢失,数据库不会丢失
我想是部分更新了-
//*$DBHandle->beginTransaction();
$firstnameOBS=$\u POST['touristfirstname'];
$todaysdateOBS=$_POST['touristdatetoday'];
$picturenow=$_POST['PicturesSubmitted'];
$JSONfirstname=json_encode($firstnameOBS);
$JSONtodaysdate=json_encode($todaysdateOBS);
$JSONpicturenow=json_编码($picturenow);
echo$JSONtodaysdate;
//*下面是从PHP发送到我的Sql Server页面-
//*在这里进行JSON编码
试试{
$senditin=$DBHandle->prepare(“插入到
`观察值“.`fkard`(`firstname`、`datetoday`、`picturesubmitted`)值
(:名字)
,:datetoday,:picturesubmitted)”,数组(PDO::ATTR_CURSOR=>PDO::CURSOR_FWDONLY);
//*$senditin->bindValue(':firstname',$JSONfirstname,PDO::PARAM_STR);
//*$senditin->bindValue(':datetoday',$JSONtodaysdate,PDO::PARAM_STR);
//*$senditin->bindValue(':PicturesSubmitted',$JSONpicturenow,
PDO::参数(LOB);
//*$myinputarray=array('firstname'=>$JSONfirstname,'datetoday'=>
$JSONtodaysdate,'PicturesSubmitted'=>$JSONpicturenow);
$DBHandle->beginTransaction();
$senditin->execute(数组('firstname'=>$JSONfirstname,'datetoday'=>
$JSONtodaysdate,'PicturesSubmitted'=>$JSONpicturenow));
//*提交允许事务开始完成
$DBHandle->commit();
}  
捕获(PDO$e){
埃科“对不起,我不能那样做,戴夫……”;
文件内容('dbErrors.txt',$e->getMessage(),文件附加);
//*这里的回滚函数调用?出现了严重异常,
}
回显“
”“成功提交”; $DBHandle=null; ?>
您是不是打算调用json_decode($todaysdateOBS)来代替?看起来这可能是问题的根源,因为json_encode将尝试以json格式编码您发送给它的任何内容,这在sql()中不是有效的日期字段。

在调用
json_encode()
之前,该值是多少?这可能会返回一个带引号的字符串,该字符串不是日期,将强制转换为0,从而导致所有的日期都为零。您对这些值调用
json\u encode()
的原因是什么?数据库行的数据类型是什么?您的意思是json encode将更改数据类型?在JSON编码前后,回音看起来是一样的(我认为主要是因为为了让事情顺利进行,我正在输入数据yyyy-mm-dd,我使用2002 02 02,所以如果月份和年份被转置,它就可以了。字段的数据类型是DATEcalling JSON encode,以避免可能的注入。我正在尝试将数据输入数据库,因此我在提交给数据库之前对数据进行编码。如果我将其取出,我将ld use decode?我将尝试将MySQL DB字段从日期类型更改为字符串?但这似乎与我使用JSON的原因背道而驰…?如果您使用MySQL DB的字符串类型,这是有意义的。但是您当然会失去内置的datetime函数。关闭这只小狗-谢谢大家-没有JSON工作正常…必须解决这个问题另一种方式。THANKS@DPR-如果你必须批准一个被接受的答案,这就是帖子关闭的方式