2015-10-16 34 views
0

我有这个PHP代码,我会在表中插入一个数据。 我不知道为什么,它不起作用。我收到查询没有错误。 如果我打印$update_miner什么都没有显示。 这是代码:PHP MYSQL插入不起作用并且没有收到任何错误

<?php 


session_start(); 
include("header.php"); 
$building['rock_miner'] =3; 
$current_time = time(); 
$update_miner = mysqli_query($connection,"INSERT INTO `updates_queue` (`user_id`,`content`, `start_at`,`end_at`,`finished`,`old_level`) VALUES ('".$_SESSION['uid']."', 'rock_update', '".$current_time."','".$current_time."',0 ,'".$building['rock_miner']."'"); 




include("footer.php"); 

?> 

这是表:

enter image description here

+2

尝试增加'的ini_set( 'display_errors设置',1); error_reporting(-1);'到页面的顶部。也可以尝试添加if($ update_miner === FALSE){die(mysqli_error($ connection)); }'。如果INSERT失败了,那就有一个原因(和一个错误信息)。 –

+1

他对我说:第1行的语法错误。什么?是<?php ???中的错误。 – Vito

+1

*整个*消息说了什么?也许错误是在包含'header.php'中? –

回答

4

你缺少一个括号最后

INSERT INTO `updates_queue` (`user_id`,`content`, `start_at`,`end_at`,`finished`,`old_level`) 
VALUES ('".$_SESSION['uid']."', 'rock_update', '".$current_time."', 
'".$current_time."',0 ,'".$building['rock_miner']."')") 
                ^
+0

哦谢谢你!这是一个愚蠢的错误。谢谢队友 – Vito

+0

不客气:)很高兴帮助你。 –

0

不太清楚,但不会使用int来存储时间。 Int只会达到某个值,然后会失败 - 或者只是存储它可以达到的最高值。我认为这可能取决于你的mysql版本。

以前的评论是一个很好的开始,并确保您已连接到数据库。

所以你的$connection是不是虚假的。

+0

我的数据库已连接。我试图在phpmyadmin查询,一切正常。问题是PHP传递的查询。我还删除了页眉和页脚包含。没有任何变化 – Vito

+0

您是否尝试过以前的评论 'ini_set('display_errors',1);使用error_reporting(-1); ' 一般会显示错误。 'if($ update_miner === FALSE){die(mysqli_error($ connection)); }' 将显示任何错误。 也可能值得一个健全的检查 - 你连接到正确的数据库,我一般有2.1发展,1生活。检查两个(如果你有他们) –

+1

我不会使用INT来存储时间,但PHP和MySQL都具有允许转换为“Unix时间戳”值的功能。请注意,不能使用INT(9),但是,因为在2001年会溢出。使用INT将在2038年失败,并且使用INT UNSIGNED将在2106中失败。 – david

相关问题