2015-03-09 5 views
0

Я пытаюсь сделать простую вставку в базу данных, но не могу найти, где проблема. Если бы кто-нибудь мог помочь, это было бы здорово. Мой код:Вставить в базу данных неизвестную ошибку

if(isset($_POST['s1'])) 
{ 
    $q1 = "INSERT INTO tienda (title,desc) VALUES ('$title', '$desc')"; 

       mysql_query($q1) or die(mysql_error()); 

    echo "<div class=alert fade in><b>Group added!</b></div>"; 
} 

поле сторона вещей:

<tr> 
    <b>Titulo</b> 
     <input type=text name=title value="<?=$aset['title']?>" size=50> <br> 
    </tr> 
    <tr> 
    <b>Descripcion</b> 
     <input type=text name=desc value="<?=$aset['desc']?>" size=50> <br> 
    </tr> 
      </div> 
     </div> 
    <tr> 
     <td>&nbsp;</td> 
     <td> 
     <input type=submit name=s1 value=Upload class="btn btn-primary"> 

Ошибка:

You have an error in your SQL syntax; check the manual that corresponds 
to your MariaDB server version for the right syntax to use near 'desc) 
VALUES (' Title ', '1')' at line 1 
+1

[mysql_query осуждаются] (http://php.net/manual/en/function.mysql-query.php), рассмотреть возможность использования [MySQLi] (HTTP: // PHP .net/manual/en/book.mysqli.php) или более общий [PDO] (http://php.net/manual/en/intro.pdo.php). Код, который вы написали, уязвим для [SQL Injection Attack] (https://en.wikipedia.org/wiki/SQL_injection), просмотрите [параметры привязки] (http://php.net/manual/en/mysqli .quickstart.prepared-statements.php), как этого избежать. – Schwern

ответ

3

desc в MySQL (короткое для описания reserved keyword, используется в порядке заявления). Попробуйте заключая, что в обратных кавычках, как

$q1 = "INSERT INTO tienda (title,`desc`) VALUES ('$title', '$desc')"; 
+0

Да, это [зарезервированное слово] (https://dev.mysql.com/doc/refman/5.6/en/reserved-words.html). – Schwern

+0

@Schwern Спасибо, просто посмотрел его в руководстве. – jpw

+0

Спасибо @jpw. Вы абсолютно. Я буду отмечать как правильный ответ. Еще раз спасибо! – Wazap2014

Смежные вопросы