За последние 24 часа нас посетили 17939 программистов и 1604 робота. Сейчас ищут 1279 программистов ...

Ошибка с кодировкой при отправке данных в БД

Тема в разделе "PHP и базы данных", создана пользователем Lopar, 18 янв 2009.

  1. Lopar

    Lopar Активный пользователь

    С нами с:
    18 янв 2009
    Сообщения:
    16
    Симпатии:
    0
    Есть такой код:

    PHP:
    1.  
    2. <?php
    3. if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
    4.     $link = mysql_connect("localhost", "root", "");
    5.     $fio=$_POST['fio'];
    6.     $addr=$_POST['addr'];
    7.     $strah=$_POST['strah'];
    8.     $strah_opl=$_POST['strah_opl'];
    9.     $query = "INSERT INTO Klient(fio,addr,strah,strah_opl) VALUES ($fio,$addr,$strah,$strah_opl)";
    10.     mysql_select_db("poliklinika", $link) or die("db.not.connect");
    11.     mysql_query($query) or die(mysql_error());
    12.     mysql_close($link);
    13.     print "Запит виконано: ".$query."<p>";
    14.     echo '<a href="'. $_SERVER['PHP_SELF'] .'">На главную</a>';
    15. } else {
    16. ?>
    17. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    18.  
    19. <table width=70% cellpadding=5 cellspacing=2>
    20. <tr valign=top><td colspan=2><font size=-1><p>Створення нового запису у базі даних про клієнта.</p></td></tr>
    21. <tr bgcolor=EEEEEE valign=top>
    22.   <td><nobr>П.І.П. клієнта:</td>
    23.   <td><input type="text" name="fio" /></td>
    24. </tr>
    25. <tr bgcolor=EEEEEE valign=top>
    26.   <td><nobr> Адреса клієнта: </td>
    27.   <td><input type="text" name="addr" /></td>
    28. </tr>
    29. <tr bgcolor=EEEEEE valign=top>
    30.   <td><nobr>Страхова компанія:</td>
    31.   <td><input type="text" name="strah" /></td>
    32. </tr>
    33. <tr bgcolor=EEEEEE valign=top>
    34.   <td><nobr>Спосіб оплати:</td>
    35.   <td><input type="text" name="strah_opl" /></td>
    36. </tr>
    37. <tr><td colspan=2>
    38.     <input type="hidden" name="action" value="submitted" />
    39.     <input type="submit" name="submit" value="Створити запис" />
    40. </td></tr>
    41.  
    42.  
    43. </form>
    44. <?php
    45. }
    46. ?>
    47.  
    на исполнении самого запроса
    PHP:
    1. mysql_query($query) or die(mysql_error());
    выдаёт ошибку: Unknown column 'РІС?СЊС„' in 'field list'
    данные не вводятся на русском и украинском языках. при использовании чисел и латиницы проблем нет.
    где я забыл заглушку поставить?
    и можно ли его оптимизировать?
     
  2. Lopar

    Lopar Активный пользователь

    С нами с:
    18 янв 2009
    Сообщения:
    16
    Симпатии:
    0
    вопрос неожиданно решился. забыл в запросе взять переменные в кавычки...
     
  3. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    почитать про Sql инекции
     
  4. Lopar

    Lopar Активный пользователь

    С нами с:
    18 янв 2009
    Сообщения:
    16
    Симпатии:
    0
    в данном случае совершенно не грозит, ибо это просто кусок курсача по БД... )))