0

我正在尝试使用 AJAX 和 php 脚本更新 mysql 表,但我仍然收到“304 Not modified”消息。我在这里搜索了很多问题,也用谷歌搜索了它,但没有任何运气......我 100% 确定所有变量都是用 AJAX 发送并由 PHP 以正确的形式接收的,我已经这样检查过:

$tabulka=$_SESSION["uzivatel"];
$slovensky=testVstupov($_POST["slovensky"]);
$prelozene=testVstupov($_POST["prelozene"]);
$druh=testVstupov($_POST["druh"]);
$lekcia=testVstupov($_POST["lekcia"]);
$reset=testVstupov($_POST["reset"]);
$id=testVstupov($_POST["id"]);
$nula=0;
//echo $tabulka."#".$slovensky."#".prelozene."#".$druh."#".$lekcia."#".$reset."#".$id."#".$nula;

function testVstupov($data)
{
    $data=trim($data);
    $data=stripslashes($data);
    $data=htmlspecialchars($data);
    return $data;
}

echo 只是为了确保所有变量都填充了正确的值

然后我尝试更新表,但结果是 304 消息,变量 $hodnoty 返回为空:

$pripojenie=mysqli_connect("localhost","user","password","database");

if (mysqli_connect_errno($pripojenie))
{
echo "Zlyhalo pripojenie do databázy: ".mysqli_connect_error();
}
if($reset == "false")
{
    $hodnoty = mysqli_query($pripojenie, "UPDATE `$tabulka` SET slovensky=$slovensky, preklad=$prelozene, druh=$druh, lekcia=$lekcia WHERE id='$id'");
}

if(mysqli_error()) 
{ 
die('Zápis do databázy sa nepodaril. Chyba: ' . mysqli_error() ); //skjurajozimy.
}
//ukncenie spojenia s databazou
mysqli_close($pripojenie);

其他 php 文件中的相同代码,但仅用于修改同一个表中的不同列。此代码有效:

$pripojenie=mysqli_connect("localhost","user","password","database");

if (mysqli_connect_errno($pripojenie))
{
echo "Zlyhalo pripojenie do databázy: ".mysqli_connect_error();
}

$vysledok=mysqli_query($pripojenie, "SELECT skusane,spravne FROM `$tabulka` WHERE preklad='$data1'");
if(mysqli_error()) 
{ 
die('Výpis z databázy sa nepodaril. Chyba: ' . mysqli_error() ); //`skjurajozimy`.
}

$hodnoty = mysqli_fetch_array($vysledok);
$noveSkusane = $hodnoty['skusane']+1;
$noveSpravne = $hodnoty['spravne']+$data2;
$uspesnost = round($noveSpravne*$noveSkusane);

$hodnoty = mysqli_query($pripojenie, "UPDATE `$tabulka` SET skusane=$noveSkusane, spravne=$noveSpravne, uspesnost=$uspesnost WHERE preklad='$data1'");
if(mysqli_error()) 
{ 
die('Zápis do databázy sa nepodaril. Chyba: ' . mysqli_error() ); //`skjurajozimy`.
}
//ukncenie spojenia s databazou
mysqli_close($pripojenie);

我表中的列是:id slovensky preklad druh lekcia skusane spravne uspesnost,其中 id 是自动增量。

请有任何建议,为什么更新代码不起作用?

4

2 回答 2

0

你有没有尝试过:

header( 'Cache-Control: no-store, no-cache, must-revalidate' ); 
header( 'Pragma: no-cache' ); 

在你的 PHP 函数的开头?

于 2013-10-15T08:56:42.233 回答
0

最后的解决方案,问题出在刻度和空格上,所以在这里正确的代码:

$hodnoty = mysqli_query($pripojenie, "UPDATE  `$databaza`.`$tabulka` SET  `slovensky` =  '$slovensky',  `preklad` = '$prelozene',  `druh` = '$druh',  `lekcia` = '$lekcia'  WHERE  `$tabulka`.`id` =$id;");
于 2013-10-17T12:51:02.847 回答