我无法弄清楚我的代码存在的问题。我试图从表中获取信息,然后从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>
答案 0 :(得分:1)
Current_Time是MySQL中的一个关键字,尝试把它放在它周围(这不是单引号btw,它是一个反引号[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'";
答案 1 :(得分: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."')";