Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка синтаксиса SQL
Форумы портала PHP.SU » PHP » Программирование на PHP » Ошибка синтаксиса SQL

Страниц (1): [1]
 

1. pzkw - 06 Июля, 2015 - 13:53:11 - перейти к сообщению
Всем привет. Помогите пожалуйста найти ошибку. Уже три дня бьюсь не могу понять в чем дело.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function generate_code($length = 25){
  3.     $num = rand(11111, 99999);
  4.     $code = md5($num);
  5.     $code = substr($code, 0, (int)$length);
  6.     return $code;
  7.        
  8. }
  9.  
  10. $kod= generate_code()
  11. ?>
  12. <form action="p1.php" method="post">
  13.                        
  14.        
  15.  
  16. <input name="order" type="text" value="<?PHP echo $kod ?>" id="texts" readonly></br>
  17.         <p><input name="wall" type="text" value="" id="texts" ></p>
  18.        
  19.        
  20.         <input type="submit" name="submit" value="отправить" class="button megabig blue">
  21.         </p>
  22.         </form>

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_POST['wall'])) {
  4.  $bit = $_POST['wall'];
  5.  if ($bit == '') {
  6.  unset($bit);} }
  7.  
  8. if (isset($_POST['order'])) {
  9.  $order = $_POST['order'];
  10.  if ($order == '') {
  11.  unset($order);} }
  12.  
  13. if (empty($bit) or empty($order))
  14.          {    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
  15.          }
  16.  
  17. include ("bd.php");            
  18.  
  19.  
  20. $result= mysql_query("INSERT INTO `btc`( `bit`, `order`) VALUES ($bit,$order)")or die(mysql_error());
  21.  if($result==TRUE );
  22.  
  23.  
  24.  
  25.  
  26. ?>  
  27.  


Выдает мне такую фразу 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 ',,,8eafcde359d51e3e5386f1951,qwerty,)' at line 1


таблица
CREATE TABLE IF NOT EXISTS `btc` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`bit` varchar(255) NOT NULL,
`order` varchar(255) NOT NULL,


PRIMARY KEY (`id`)
2. Viper - 06 Июля, 2015 - 14:12:53 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. mysql_query("INSERT INTO `btc`(`id`, `bit`, `order`) VALUES ('', '".$bit."', '".$order."')")


и `id` int(255) что-то новое... Чукчастайл?
3. esterio - 06 Июля, 2015 - 14:28:17 - перейти к сообщению
Viper пишет:
и `id` int(255) что-то новое... Чукчастайл?

Почему же. Именно на инт 255 никак не влияет
4. Viper - 06 Июля, 2015 - 14:56:51 - перейти к сообщению
esterio я к тому зачем такой большой?
5. pzkw - 06 Июля, 2015 - 15:26:34 - перейти к сообщению
не работает, теперь пишет Unknown column '' in 'field list'
Я не понял зачем столько знаков препинания писать? в таблице с регистрацией у меня все проще и все отлично работает
6. Viper - 06 Июля, 2015 - 18:40:36 - перейти к сообщению
pzkw пишет:
не работает, теперь пишет Unknown column '' in 'field list'
echo запроса в студию!

pzkw пишет:
Я не понял зачем столько знаков препинания писать?
можете не писать.
7. pzkw - 06 Июля, 2015 - 22:20:17 - перейти к сообщению
Я так понял вот это
PHP:
скопировать код в буфер обмена
  1. <input name="order" type="text" value="<?PHP echo $kod ?>" id="texts" readonly></br>


73161ae4a44563cfc1f24c152

пробовал и без него, все равно не получается.
Как только уже не крутил,не хочет. Все остальные таблицы работают нормально.
(Добавление)
INSERT INTO `btc`(`id`, `bit`, `order`) VALUES ([value-1],[value-2],[value-3])

#1064 - 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 '[value-1],[value-2],[value-3])' at line 1

а это пишет если в phpmyadmin проверять без каких либо запросов
8. andrewkard - 06 Июля, 2015 - 22:36:20 - перейти к сообщению
pzkw
Перед 20 строчкой:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result= mysql_query("INSERT INTO `btc`( `bit`, `order`) VALUES ($bit,$order)")or die(mysql_error());
  3.  

выведите запрос и посмотрите что с ним не так:
PHP:
скопировать код в буфер обмена
  1.  
  2. echo "INSERT INTO `btc`( `bit`, `order`) VALUES ($bit,$order)";
  3.  

попробуйте выполнить его в phpmyadmin
9. pzkw - 06 Июля, 2015 - 22:57:00 - перейти к сообщению
эта же ошибка
(Добавление)
INSERT INTO `btc` (`bit`,`order`)VALUES(`12345`,`c9d84a597dde4786e661fbe85`)
(Добавление)
Нашел ошибку, но теперь пишет что нет такого столбца ( Unknown column '' in 'field list')
10. Viper - 06 Июля, 2015 - 23:34:04 - перейти к сообщению
pzkw ничерта вы не нашли, и даже не поняли в чем у вас беда.

1. INSERT требует перечисления всех столбцов
2. обратные кавычки (те которые по Ctrl+ё) испотзуются для экранирования имен стобцов, а не значений.
3. значения в INSERT/UPDATE беруться в одинарные кавычки (те которые по Ctrl+э)

В общем читайте документацию.
11. pzkw - 08 Июля, 2015 - 07:51:49 - перейти к сообщению
Всем спасибо за проявленный интерес и посильную помощь.Нашел ошибку. Пишу в дримвивер, когда ставлю одинарную кавычку (') дримвивер ставит их сразу две, я когда корректировал одну стер,затем поставил снова. Тут мне не понятен ход мысли редактора, но походу если стереть одну кавычку он все равно думает, что их остается две.

 

Powered by ExBB FM 1.0 RC1