-1

私もこのエラーが発生しています:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , '',128745)' at line 1

私はすでにisset()and!empty()関数を使用しました。すべての変数は、使用される前に宣言されています。私もたくさん検索しましたが、まだこの問題を解決できませんでした。助けてください。私はここで立ち往生しています。どんな助けも私にとって大いに役立ちます。ありがとう。

コードは次のとおりです。

<?php

$authorized = false;
session_start();
include('config.php');

if(isset($_SESSION['crnumbers']) && isset($_SESSION['passwords']))
{
    $authorized = true;

    if(isset($_POST["submit"]) && !empty($_POST["submit"]))
    {
        $ScdDate = mysql_real_escape_string($_POST['ScdDate']); 
        $ScdMonth = mysql_real_escape_string($_POST['ScdMonth']); 
        $ScdYear = mysql_real_escape_string($_POST['ScdYear']); 
        $DName = mysql_real_escape_string($_POST['DName']) ; 
        $ScdTime = mysql_real_escape_string($_POST['ScdTime']); 
    }

    $crnumber = mysql_real_escape_string($_SESSION['crnumbers']);

    $sql = mysql_query("INSERT INTO schedule(ScdDate,ScdMonth,ScdYear,ScdTime,crnumber,DName)VALUES($ScdDate, $ScdMonth, $ScdYear, '$ScdTime', $crnumber, '$DName')");

    if(!$sql) 
    {
        die('There is some error. Damn it! ' .mysql_error());
    }

    header("location: http://localhost/Alok/Health%20Care%20Project\GUI\patientGUI2.php");

}

else if(!$authorized)
{
    header("location:");
    exit();
}
?>
4

3 に答える 3

1

どうやら問題は、INSERT クエリで使用される変数に有効なデータが含まれておらず、空に設定されている可能性があるため、INSERT クエリが壊れていることです。

ここで使用できるオプションは 2 つあります。

A] 以下の代入構文を使用してみてください。空でない場合は指定された値を設定し、そうでない場合は0に設定します

$ScdDate = (!empty($_POST['ScdDate'])) ? mysql_real_escape_string($_POST['ScdDate']) : 0;
$ScdMonth = (!empty($_POST['ScdMonth'])) ? mysql_real_escape_string($_POST['ScdMonth']): 0;
$ScdYear = (!empty($_POST['ScdYear'])) ? mysql_real_escape_string($_POST['ScdYear']) : 0;
$DName = (!empty($_POST['DName'])) ? mysql_real_escape_string($_POST['DName']) : '';
$ScdTime = (!empty($_POST['ScdTime'])) ? mysql_real_escape_string($_POST['ScdTime']) : '';

B] クエリではすべての値を一重引用符で囲みます

$sql = mysql_query("INSERT INTO schedule(ScdDate,ScdMonth,ScdYear,ScdTime,crnumber,DName)VALUES('$ScdDate', '$ScdMonth', '$ScdYear', '$ScdTime', '$crnumber', '$DName')");

上記がお役に立てば幸いです!

ちなみに、質問で指定されたエラーは、おそらくクエリと同期していません。クエリの最後の値は単一引用符で囲まれた $DName ですが、エラーの最後の値は単一引用符で囲まれていません。間違っているかもしれませんが(-_-;)

于 2013-07-14T16:58:21.593 に答える
0

あなたは$_POST["submit"]存在をチェックしていますが、ではありません$_POST["ScdTime"]。というわけで予告が残ります。あなたのMySQLエラーに関して、コメントはあなたの質問にかなり答えさせてくれます。

コードの後半で使用される可能性のあるすべての変数で isset() を使用する必要があります:)

<?php
if(isset($_POST["submit"])) &&
   isset($_POST['ScdDate']) && 
   isset($_POST['ScdMonth']) &&
   isset($_POST['ScdYear']) &&
   isset($_POST['DName']) &&
   isset($_POST['ScdTime']))
      // We're good!
于 2013-07-14T16:21:38.423 に答える
-1

正しい方法は次のとおりです: if(array_key_exists('crnumbers', $_POST)) {}

また、すべての配列キーを確認してください。それが2番目のエラーの原因です。

于 2013-07-14T16:38:06.270 に答える