-1

我无法在这里找出我的代码的问题。我试图从表中获取信息,然后从 Current_Time 中减去 1 秒,看起来像“2:00”。问题是,我得到:

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'Current_Time) VALUES('22')' 附近使用正确的语法”

我什至不明白它从哪里得到 22。

谢谢,我真的很感激。

<?php

$connection = mysql_connect('localhost', 'aleckaza_admin', 'pswd');
if (!$connection) {
    die('Could not connect: ' . mysql_error());
}

if (isset($_GET['id']) && isset($_GET['time'])) {
    mysql_select_db("aleckaza_pennyauction", $connection);
    $query = "SELECT Current_Time FROM Live_Auctions WHERE ID='1'";
    $results = mysql_query($query) or die(mysql_error());

    while ($row = mysql_fetch_array($results)) {
        $newTime = $row['Current_Time'] - 1;
        $query = "INSERT INTO Live_Auctions(Current_Time) VALUES('".$newTime."')";
        $results = mysql_query($query) or die(mysql_error());
    }
}

if (isset($_GET['getTime'])) {
    mysql_select_db("aleckaza_pennyauction", $connection);
    $query = "SELECT `Current_Time` FROM Live_Auctions WHERE ID='".$_GET['getTime']."'";
    $results = mysql_query($query) or die(mysql_error());
}

function beginGetAllInfo() {
    GLOBAL $connection;
    mysql_select_db("aleckaza_pennyauction", $connection);
    $query = "SELECT * FROM Live_Auctions";
    $results = mysql_query($query) or die(mysql_error());

    while ($row = mysql_fetch_array($results)) {
        if (!isset($_GET['getTime'])) {
        echo "
        <table width=200px height=360px cellspacing=0 cellpadding=1 style='border-color: #000; border-style: solid; border-width: 1px;'>
            <tr>
                <td colspan=2 style='font-size: 14px; color: #2700EB; font-family: Arial,Helvetica,sans-serif;'><center><strong>".$row['Product_Name']."</font></strong></center></td>
            </tr>
            <tr>
                <td colspan=2><center><img width=70% src='".$row['Image_URL']."'></center></td>
            </tr>
            <tr>
                <td id='txtHint' colspan=2 bgcolor=#000 height=90px><center><font color=#fff size=5px>$".$row['Current_Price']."</font><br /><font color=#fff size=3px>Timer set @ ".$row['Current_Timer']."sec</font><br /><font color=#fff size=5px>".$row['Current_Time']."</font><br /></center></td>
            </tr>
        </table>";
        } else {

        }
    }
}

?>

<html>
    <head>
        <title>Auction</title>
        <script type="text/javascript">
function getTime()
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","auction.php?getTime=1",true);
xmlhttp.send();
}

while (1) {
    getTime();
}
</script>
    </head>
    <body>
        <?php beginGetAllInfo(); ?>
    </body>
</html>
4

2 回答 2

1

Current_Time 是 MySQL 中的一个关键字,尝试将 ` 放在它周围(顺便说一句,这不是单引号,它是一个反引号 [thx maiorano84] - 在 TAB 键上方)

$query = "SELECT `Current_Time` FROM Live_Auctions WHERE ID='1'";

$query = "INSERT INTO Live_Auctions(`Current_Time`) VALUES('".$newTime."')";

编辑:

我会将您的 SELECT 语句更改为:

$query = "SELECT DATE_ADD(`Current_Time`, INTERVAL '-1' MINUTE) FROM Live_Auctions WHERE ID='1'";
于 2012-10-04T03:20:27.397 回答
0
//Current_Time is a reserve function in sql

//change this line from this :
$query = "INSERT INTO Live_Auctions(Current_Time) VALUES('".$newTime."')";

//to this :
//surround the Current_Time with backtick (not single quote)
$query = "INSERT INTO Live_Auctions(`Current_Time`) VALUES('".$newTime."')";
于 2012-10-04T03:45:31.640 回答