За последние 24 часа нас посетили 17487 программистов и 1719 роботов. Сейчас ищут 1516 программистов ...

Извиняюсь, но не догоняю

Тема в разделе "PHP и базы данных", создана пользователем Zmeevik, 2 сен 2006.

  1. Zmeevik

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

    С нами с:
    2 сен 2006
    Сообщения:
    2
    Симпатии:
    0
    Работаем с формой запроса из Mysql посредством рhp скрипта. Сам запрос выглядит так:
    $query = "SELECT * FROM $net WHERE $net.from_IP = $ipsource AND $net.port_from_IP = $portsource AND $net.to_IP = $ipdest AND $net.port_to_IP = $portdest AND $net.date = $date";
    Ругается так: 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 '.1.3' at line 1 Может кавычки какие-то пропустил? Если ставим AND $net.date = '$date' то пишет что результатов нет, хотя база при этом полная, ибо когда переменные подменяем значениями - данные есть. Проблема в синтаксисе, но как будет правильно? Заранее благодарен.
     
  2. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    У вас вероятно $ipsource содержит IP ... следовательно данные типа ххх.ххх.ххх.ххх, такой формат данных точно нельзя назвать числовым, а следовательно данные должены быть обрамлены кавычками (в вашем случае это могут быть апострофы).

    То есть, в запросе все что не число не NULL и не функция обрамляем кавычками, если хотим чтобы mysql все правильно понял.

    p.s. Делайте пожалуйста информативные заголовки.
     
  3. Zmeevik

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

    С нами с:
    2 сен 2006
    Сообщения:
    2
    Симпатии:
    0
    Формат действительно не числовой - CHAR. Обрамлял кавычками - не работало. Решил вопрос следующим путем: в запросе ставим $net.from_IP = '".mysql_escape_string($ipsource)."' после этого стало все путем. Тем не менее, Благодарю Вас.