MySQL Veritabanı için Javascript Post Nasıl

4 Cevap

Ben HTML bir form oluşturduk ve ben bir MySQL veritabanı şeklinde bilgi göndermek için çalışıyorum. Benim bir şekilde veritabanına ele alınması gereken bir dinamik bir liste seçim kullanır. Formu gönderdikten Ancak ben aşağıdaki hatayı alıyorum

Hata: 'alan listesindeki' Bilinmeyen sütun 'coulmn_name'.

İşte formu için benim HTML kodu

    <td height="94"><p align="justify">CALL TRACKER - ADMIN</p></td>
  </tr>
  <tr>
    <td>
    <table width="36%" border="0" align="center" cellpadding="2" cellspacing="0">
        <tr>
        <td width="29%" align="right" valign="middle"><strong>Customer Name :</strong></td>
        <td>
        <input type="text" name="customer_name" width="70%" align="left" valign="middle">
        </td>
        </tr>
        <tr>
        <td width="29%" align="right" valign="middle"><strong>E-Mail Address :</strong></td>
        <td>
        <input type="text" name="customer_email_address" width="70%" align="left" valign="middle">
        </td>

        </tr>
        <tr>
        <td width="29%" align="right" valign="middle"><strong>Case Number :</strong></td>
        <td>
        <input type="text" name="case_number" width="70%" align="left" valign="middle">
        </td>
        </tr>

        <tr>
        <td width="29%" align="right" valign="middle"><strong>MSISDN :</strong></td>
        <td>
        <input type="text" name="msisdn" width="70%" align="left" valign="middle">
        </td>
        </tr>

        <tr>      
        <td width="29%" align="right" valign="middle">
        <strong>Route Cause :</strong></td>
        <td width="71%" align="left" valign="middle">
        <select name="route_cause" id="category" onChange="javascript: listboxchange1(this.options[this.selectedIndex].value);">
                <!-- <select name="route_cause" id="route_cause"> -->
            <option value="">Select the Call Reason</option>
            <option value="Billing Admin">Billing Admin</option>
            <option value="Customer Care">Customer Care</option>
            <option value="Insurance">Insurance</option>
            <option value="Repairs">Repairs</option>
            <option value="SIM Swap">SIM Swap</option>
            <option value="UTI">UTI</option>

        </select>
        </td>
      </tr>



    <tr>
        <td align="right" valign="middle">
        <strong>Call Type/Indexed To :</strong></td>
        <td align="left" valign="middle">
        <script type="text/javascript" language="javascript" name="calltype_indexedto">
                <!--
                    document.write('<select name="subcategory1" onChange="javascript: listboxchange2(this.options[this.selectedIndex].value);"><option value=""></option></select>')
                    -->
        </script>
        </td>



    </tr> 




     <tr>
        <td align="right" valign="middle">
        <strong>Type/TAT :</strong></td>
        <td align="left" valign="middle">
        <script type="text/javascript" language="javascript" name="type_tat">
                <!--
                    document.write('<select name="subcategory2" onChange="javascript: listboxchange3(this.options[this.selectedIndex].value);"><option value=""></option></select>')
                    -->
        </script>
        </td>



    </tr> 



    <tr>      
    <td width="29%" align="right" valign="middle">
        <strong>Escalated To :</strong></td>
        <td width="71%" align="left" valign="middle">
        <select name="escalatedto" id="escalated_to">
            <option value="">Select the Escalation</option>
            <option value="Billing Ops">Billing Ops</option>
            <option value="Resolvers">Resolvers</option>
            <option value="Finance">Finance</option>
            <option value="Ressolver">Ressolver</option>
            <option value="Nudebt">Nudebt</option>
            <option value="Transunion">Transunion</option>
            <option value="N/A">N/A</option>


        </select>
        </td>
      </tr>


        <tr>      
    <td width="29%" align="right" valign="middle">
        <strong>Requested By :</strong></td>
        <td width="71%" align="left" valign="middle">
        <select name="requestedby" id="requested_by">
            <option value="">UTI Requested By</option>
            <option value="Billing">Billing</option>
            <option value="Customer Service">Customer Service</option>
            <option value="Insurance">Insurance</option>
            <option value="Management">Management</option>
            <option value="Repairs">Repairs</option>
            <option value="Retail Support">Retail Support</option>
            <option value="Retentions">Retentions</option>
            <option value="SIM Swap">SIM Swap</option>
            <option value="WOW">WOW</option>
            <option value="N/A">N/A</option>


        </select>
        </td>
     </tr>  


    <tr>      
    <td width="29%" align="right" valign="middle">
        <strong>Province :</strong></td>
        <td width="71%" align="left" valign="middle">
        <select name="province" id="province">
            <option value="">Select the Province</option>
            <option value="Eastern Cape">Eastern Cape</option>
            <option value="Gauteng">Gauteng</option>
            <option value="Kwa-Zulu Natal">Kwa-Zulu Natal</option>
            <option value="Limpopo">Limpopo</option>
            <option value="Mpumalanga">Mpumalanga</option>
            <option value="North West">North West</option>
            <option value="Northern Cape">Northern Cape</option>
            <option value="Polokwane">Polokwane</option>
            <option value="Western Cape">Western Cape</option>
            <option value="Other">Other</option>
        </select>
        </td>
      </tr>

        <tr>
        <td width="29%" align="right" valign="middle"><strong>Comments :</strong></td>
        <td>
        <textarea rows ="5" cols="30" name="comments">
        </textarea>
        </td>
        </tr>


      <tr>
        <td>
        <p>
          <input type="reset" value="Reset Form"><input type="Submit" value="Submit">

Here is my PHP code to write to the Database



    <?php
    $con = mysql_connect("hostname"
    ,"mysqusername"
    ,"mysqlpassword");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

    mysql_select_db("databasename", $con);

    $sql="INSERT INTO customer_services_tracker 
    (customer_name
    ,customer_email_address
    ,case_number
    ,msisdn
    ,route_cause
    ,calltype_indexedto
    ,type_tat
    ,escalatedto
    ,requestedby
    ,province
    ,comments
    )

    VALUES
    ('$_POST[customer_name]'
    ,'$_POST[customer_email_address]'
    ,'$_POST[case_number]'
    ,'$_POST[msisdn]'
    ,'$_POST[route_cause]'
    ,'$_POST[calltype_indexedto]'
    ,'$_POST[type_tat]'
    ,'$_POST[escalatedto]'
    ,'$_POST[requestedby]'
    ,'$_POST[province]'
    ,'$_POST[comments]')";

    $CatName = $rowCat["Name"];

    if (!mysql_query($sql,$con))
      {
      die('Error: ' . mysql_error());
      }
    echo "1 record added";

    mysql_close($con)
    ?> 

4 Cevap

Error: Unknown column 'coulmn_name' in 'field list'.

SQL deyimi muhtemelen (INSERT INTO olarak, muhtemelen) column that does not exist anlamına gelir. Kullandığınız hangi isim için gerçek hata mesajını kontrol edin.

Bir açıklama: Bu (kullanıcı girilen verilerden) gibi SQL dizeleri inşa etmek çok tehlikeli - bir kullanıcı ile 'comments' alanını doldurur eğer test'); DROP TABLE customer_services_tracker; -- sorgu olacak ... çok kötü.

Bunun yerine, hazırlanmış ifadeler kullanmak veya en azından kullanıcı girişi kaçmak.

Sen () (...: $ Sql ​​'Hata:' SQL 'mysql_error ()) die kalıbı değiştirerek sql deyimi dışında yankı gerekir;

Ayrıca, bir kenara sadece koymak asla onlar gibi içerdikleri ne, kim bilir, bir veritabanına değişkenleri yayınlanmıştır.

  1. Eğer burada yayınlanan kod değil koşuyoruz. Bir dosya içine bu kodu kaydedin ve emin bu dosya gerçek formun eylem yaptı olun.

  2. önce bu kodu eklemek $sql =...:

    foreach ($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string($value);

Bu hata, bazen yanlış sözdizimi neden olur. Mezar aksan (`) ile kesme (') yerine ve sütun adları için bu eklemeyi deneyin.