Mysql查询失败[无法识别]

时间:2015-09-22 04:57:07

标签: php mysql

我目前正在制作学生注册表。我的查询似乎无法正常工作。它没有将任何数据保存到数据库。我无法找到问题所在。

我正在使用if (isset($_POST['submit']))

        $NamaPelajar=$_POST['NamaPenuh'] ;
        $NoKP= $_POST['NoIC'] ;                 
        $Jantina=$_POST['Jantina'] ;
        $Email=$_POST['Email'] ;
        $Katalaluan=$_POST['KataLaluan'] ;
        $AlamatPelajar1=$_POST['alamat'] ;
        $PoskodPelajar=$_POST['Poskod'] ;
        $BandarPelajar=$_POST['bandar'] ;
        $NegeriPelajar=$_POST['Negeri'] ;
        $NoTelPelajar=$_POST['NoTelPelajar'] ;
        $NamaInstitusi=$_POST['NamaUni'] ;
        $AlamatInstitusi1=$_POST['alamatp'] ;
        $PoskodInstitusi=$_POST['Poskodp'] ;
        $BandarInstitusi=$_POST['bandarp'] ;
        $NegeriInstitusi=$_POST['Negerip'] ;
        $Kelayakan=$_POST['Kelayakan'] ;
        $Jurusan=$_POST['kos'] ;
        $Tempoh=$_POST['Tempoh'] ;
        $Mula=$_POST['mula'] ;
        $Tamat=$_POST['akhir'] ;
        $NoTelPenyelia=$_POST['NoPenyelia'] ;

        $AlamatPelajar = ($AlamatPelajar1).' '.($PoskodPelajar)
                            .' '.($BandarPelajar).' '.($NegeriPelajar);

        $AlamatInstitusi = ($AlamatInstitusi1).' '.($PoskodInstitusi)
                            .' '.($BandarInstitusi).' '.($NegeriInstitusi);

这是查询

已经在数据库中进行三重检查,尝试使用新数据库,检查发布变量。

     $query = mysql_query("INSERT INTO `pelajar`
                    (NamaPelajar,NoKpPelajar,JantinaPelajar,EmailPelajar,
                    KataLaluanPelajar,AlamatPelajar,NoTelPelajar,NamaInstitusi,AlamatInstitusi,
                    KelayakanPelajar,JurusanPelajar,TempohLatihan,TarikhMula,TarikhTamat,NoTelPenyelia)
                    VALUES ('$NamaPelajar','$NoKP','$Jantina','$Email','$Katalaluan','$AlamatPelajar',
                    '$NoTelPelajar','$NamaInstitusi','$AlamatInstitusi','$Kelayakan','$Jurusan','$Tempoh',
                    '$Mula','$Tamat','$NoTelPenyelia')");
                    if($query)
                        {
                        $url = 'Succes.php';
                        }
                    else
                        {
                        $url = 'Fail.php';
                        }

                    header('Location: ' . $url);
                    exit(); 

每次我运行它时,总是前往Fail.php

2 个答案:

答案 0 :(得分:1)

首先,您应该使用PreparedStatements或至少转义数据,否则您的数据库将打开以进行SQL注入。

您的查询位于字符串中,因此新行和空格可能会计入列名称,您必须将其删除。

您可以使用echo mysql_error();打印上一个错误。

无论如何,最好看看 PDO mysqli ,因为不推荐使用mysql。

答案 1 :(得分:0)

在php中构建查询并将其返回给浏览器。

    $insertSQL =  "INSERT INTO `pelajar` (NamaPelajar,NoKpPelajar,JantinaPelajar,EmailPelajar, KataLaluanPelajar,AlamatPelajar,NoTelPelajar,NamaInstitusi,AlamatInstitusi, KelayakanPelajar,JurusanPelajar,TempohLatihan,TarikhMula,TarikhTamat,NoTelPenyelia) VALUES ('$NamaPelajar','$NoKP','$Jantina','$Email','$Katalaluan','$AlamatPelajar', '$NoTelPelajar','$NamaInstitusi','$AlamatInstitusi','$Kelayakan','$Jurusan','$Tempoh', '$Mula','$Tamat','$NoTelPenyelia')";
    echo $insertSQL;

在sql客户端控制台,gui或phpMyAdmin中运行生成的查询以查找原因