Php MySQL语法?应该很简单!

Php MySQL语法?应该很简单!,php,mysql,sql,Php,Mysql,Sql,我在使用$updatequery SQL时遇到了问题,这个php脚本在一个ajax调用中接受3个post变量,第一个是以前正确答案的数组,与此处无关$win是0还是1取决于上一个问题的回答是否正确,$id是单词的主要id(这是一个单词匹配游戏,就像韩语抽认卡一样)$updatequery旨在为每个单词建立统计数据,有多少人正确地理解了它,并通过记录单词被点击的次数和正确回答的次数来确定单词的难度。如果我答错了这个词,它会准确地反映在数据库中:单击一次,没有赢家。但是我的回答正确吗?它说0次点击,

我在使用$updatequery SQL时遇到了问题,这个php脚本在一个ajax调用中接受3个post变量,第一个是以前正确答案的数组,与此处无关$win是0还是1取决于上一个问题的回答是否正确,$id是单词的主要id(这是一个单词匹配游戏,就像韩语抽认卡一样)$updatequery旨在为每个单词建立统计数据,有多少人正确地理解了它,并通过记录单词被点击的次数和正确回答的次数来确定单词的难度。如果我答错了这个词,它会准确地反映在数据库中:单击一次,没有赢家。但是我的回答正确吗?它说0次点击,数据库中没有赢家…出什么问题了

<?php

$dbcon = mysql_connect("localhost", "tulesblo_tules", "Gromit554?") or die(mysql_error());
mysql_select_db("tulesblo_koreangame", $dbcon) or die(mysql_error());
mysql_query("SET NAMES utf8");

$correctarray = explode(",", $_POST["correct"]);
$win = (int)$_POST["win"];
$id = (int)$_POST["id"];
$correct = "";
$y = 1;

if ($id > 0) {
    $updatequery = "UPDATE words SET clicks=clicks+1 AND wins=wins+ '$win' WHERE id= '$id'";
    mysql_query($updatequery) or die(mysql_error());
    }

foreach($correctarray as $x){
    $correct .= " id != " . $x;
    if ($y == count($correctarray)) {break;} 
    $correct .= " AND"; $y++;
    }   

//pick 4 random pairs
$filter = count($correctarray) > 1?"WHERE" . $correct:"";
$querystring = "SELECT * FROM words ".$filter." ORDER BY RAND() LIMIT 4";

$query = mysql_query($querystring);

//turn them into multiarray
$x = 0;
$multiarray = array();
while ($result = mysql_fetch_assoc($query)){
    $multiarray[$x] = array(
        "id"        => $result['id'], 
        "korean"    => $result['korean'], 
        "english"   => $result['english']
        );
    $x++;
}
array_push ($multiarray,$win,$id); 
//send as JSON to client
//array_push($multiarray, $querystring, count($correctarray));
echo json_encode($multiarray);

?>

在更新多个列时没有和。用逗号把它们分开-

$updatequery = "UPDATE words SET clicks=clicks+1, wins=wins+ '$win' WHERE id= '$id'"

我可以推荐的是一步一步地调试-将查询记录到文件中,您将发现错误。我建议您也阅读有关SQL注入的内容,并了解如何使用mysqli,以便使用准备好的语句和绑定变量。感谢Yaronius,我没有从mysql_error()中获得任何有用的信息,我知道变量是正确的,因为我已经用php输出了它们,我怎样才能更密切地监视MySQL在做什么?我如何将查询记录到文件中?还要感谢Mark,我基本上知道SQL注入是什么,我通常使用mysql\u real\u escape\u string,我也会将其包括在内。我还将查找准备好的语句和绑定变量。我真的很欣赏这些输入:)是的,你真漂亮!我知道这会很简单,有人特别告诉我,你必须使用这些语句,我猜它们是像我一样的SQL noob:P我已经测试过了,它可以工作了。非常感谢Sachin:)@David-如果有多个条件,则必须在WHERE子句中使用AND。不在更新中。;)