За последние 24 часа нас посетили 52509 программистов и 1724 робота. Сейчас ищут 2207 программистов ...

SQL ошибка

Тема в разделе "PHP для новичков", создана пользователем Андрей12, 22 фев 2015.

  1. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    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 '' at line 1


    с чем может быть связана эта ошибка?
    Код (Text):
    1.  
    2. <?
    3. Error_Reporting (0);
    4. if(isset($ku['id'])) {
    5.     echo 'Вы уже зарегистрированы';
    6. } else {
    7. if(isset($_POST['nick']) && isset($_POST['password']) && isset($_POST['password2']) && isset($_POST['email']))
    8. {
    9.  
    10. if($result = mysqli_store_result($db->Query("SELECT COUNT(*) FROM `kolhoz_user` WHERE `nick` = '".my_esc($_POST['nick'])."' LIMIT 1"),0)!=0)err_game("Этот ник уже зарегистрирован. Выберите другой!");
    11. elseif( !preg_match("#^([A-zА-я0-9\-\_\ ])+$#ui", $_POST['nick']))err_game('В нике присутствуют запрещенные символы');
    12. elseif (preg_match("#[a-z]+#ui", $_POST['nick']) && preg_match("#[а-я]+#ui", $_POST['nick']))err_game('Разрешается использовать символы только русского или только английского алфавита');
    13. elseif (preg_match("#(^\ )|(\ $)#ui", $_POST['nick']))err_game('Запрещено использовать пробел в начале и конце ника');
    14. elseif (strlen2($_POST['nick'])<4)err_game('Короткий ник');
    15. elseif (strlen2($_POST['nick'])>32)err_game('Длина ника превышает 32 символа');
    16. elseif (!isset($_POST['email']) || $_POST['email']==NULL)err_game('Неоходимо ввести Email');
    17. elseif(!isset($_POST['rules']))err_game('Нужно принять правила!');
    18. elseif (!preg_match('#^[A-z0-9-\._]+@[A-z0-9]{2,}\.[A-z]{2,4}$#ui',$_POST['email']))err_game('Неверный формат Email');
    19. elseif($result = mysqli_store_result($db->Query("SELECT COUNT(*) FROM `kolhoz_user` WHERE `email` = '".my_esc($_POST['email'])."'"),0)!=0)err_game("Пользователь с этим E-mail уже зарегистрирован");
    20. elseif (strlen2($_POST['password'])<6)err_game('По соображениям безопасности пароль не может быть короче 6-ти символов');
    21. elseif(strlen2($_POST['password'])>32)err_game('Длина пароля превышает 32 символа');
    22. elseif ($_POST['password']!=$_POST['password2'])err_game('Пароли не совпадают');
    23. else
    24. {
    25. if($_POST['pol']==0)$pol='0';else $pol='1';
    26. $db->Query("INSERT INTO `kolhoz_user` SET `nick` = '".my_esc($_POST['nick'])."', `password` = '".md5($_POST['password'])."', `pol` = '$pol', `email` = '".my_esc($_POST['email'])."', `money` = '0', `rubies` = '0', `status` = '".(mysql_result($db->Query("SELECT COUNT(*) FROM `kolhoz_user`"), 0)==0?3:0)."', ref_id = '".$_COOKIE['ref']."'");
    27. $_SESSION['id_user']=mysql_insert_id();
    28. header("Location:/?myfarm");
    29. exit;
    30. }
    31. }
    32.  
    33. ?>
    34. <table width="700" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="tab1">
    35. <table class="zag_page" align="center"><tbody><tr><td align="center" valign="middle">Регистрация</td></tr></tbody></table>
    36. </td></tr>
    37. <tr><td class="tab2">
    38. <div class="block_tab"><br>
    39. <form method="post">
    40.  
    41. <table border="0" align="center" width="600">
    42.     <tbody><tr>
    43. <td>
    44.         <span class="text">Логин:<font color="#FF0000">*</font></span><br>
    45.         <input class="inp_page" type="text" value="" name="nick" autocomplete="off" maxlength="20" placeholder="От 4 до 20 символов"><br>
    46.  
    47.         <span class="text">Пол:<font color="#FF0000">*</font></span><br>
    48.         <select class="select_page" name="pol">
    49.             <option value="1">Мужской</option>
    50.             <option value="0">Женский</option>
    51.         </select><br>
    52.  
    53.         <span class="text">Пароль:<font color="#FF0000">*</font></span><br>
    54.         <input class="inp_page" type="password" value="" name="password" autocomplete="off" maxlength="32" placeholder="От 6 до 32 символов"><br>
    55.  
    56.         <span class="text">Пароль повтор:<font color="#FF0000">*</font></span><br>
    57.         <input class="inp_page" type="password" value="" name="password2" autocomplete="off" maxlength="32" placeholder="От 6 до 32 символов"><br>
    58.  
    59.  
    60.         <span class="text">E-mail:<font color="#FF0000">*</font></span><br>
    61.         <input class="inp_page" type="email" value="" name="email" maxlength="50"><br>
    62.  
    63.  
    64.         <span class="text">Вас пригласил:</span><br>
    65.         <?
    66. $qqqq = $_COOKIE['ref'];
    67. $fre = $db->Query("SELECT * FROM kolhoz_user WHERE id = $qqqq");
    68. $rfa = $row->mysqli_fetch_array($fre);
    69. ?>
    70.                 <input class="inp_page" type="" value="<?=$rfa['nick']; ?>" name="" disabled=""><br><br>
    71.                
    72.                
    73.                
    74.                
    75.                
    76.                
    77.                 <td valign="top" align="center">
    78.                
    79.  
    80.                
    81.    
    82.  
    83.         <input name="rules" type="checkbox" style="width:16px; height:16px;"><label id="rules"><span class="text"><a class="link_s" href="?rules" target="_blank">Правила</a> игры прочитал и принимаю<font color="#FF0000">*</font></span></label><br>
    84.           </td>    
    85.         </td>
    86.     </tr>
    87.     <tr>
    88.         <td colspan="2">
    89.         <center><input type="submit" class="btn_small" value="Регистрация"></center>
    90.         </td>
    91.     </tr>
    92. </tbody></table>
    93. </form>
    94.  
    95. </div>
    96. </td></tr><tr><td class="tab3"></td></tr></tbody></table>
    97. <?
    98.  
    99. echo "<div></div>";
    100. include_once 'inc/foot.php';
    101. exit;
    102. }
    103. ?>
    пробывал вот это прописывать ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=196 ;
    спасибо.
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    1. Включи ошибки error_reporting. А разный регистр - красивее?
    2. Сделай echo проблемного запроса и выкладывай его сюда. Как бы одной силой мысли твой код сложно проверить.
     
  3. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    Код (Text):
    1. <?
    2. Error_Reporting (1);
    3. if(isset($ku['id'])) {
    4.    echo 'Вы уже зарегистрированы';
    5.    echo "<center><b><font color = 'red'>Указанный логин уже используется</font></b></center><BR />";
    6.    echo "<center><b><font color = 'red'>Пароль заполнен неверно</font></b></center><BR />";
    7.    echo "<center><font color = 'red'><b>Email имеет неверный формат</b></font></center>";
    8.    echo "<center><b><font color = 'red'>Вы не подтвердили правила</font></b></center><BR />";
    9.    echo "<center><b><font color = 'green'>Вы успешно зарегистрировались. Используйте форму слева для входа в аккаунт</font></b></center><BR />";
    10.    
    11. } else {
    12. if(isset($_POST['nick']) && isset($_POST['password']) && isset($_POST['password2']) && isset($_POST['email']))
    13. {
    14.  
    15. if($result = mysqli_store_result($db->Query("SELECT COUNT(*) FROM `kolhoz_user` WHERE `nick` = '".my_esc($_POST['nick'])."' LIMIT 1"),0)!=0)err_game("Этот ник уже зарегистрирован. Выберите другой!");
    16. elseif( !preg_match("#^([A-zА-я0-9\-\_\ ])+$#ui", $_POST['nick']))err_game('В нике присутствуют запрещенные символы');
    17. elseif (preg_match("#[a-z]+#ui", $_POST['nick']) && preg_match("#[а-я]+#ui", $_POST['nick']))err_game('Разрешается использовать символы только русского или только английского алфавита');
    18. elseif (preg_match("#(^\ )|(\ $)#ui", $_POST['nick']))err_game('Запрещено использовать пробел в начале и конце ника');
    19. elseif (strlen2($_POST['nick'])<4)err_game('Короткий ник');
    20. elseif (strlen2($_POST['nick'])>32)err_game('Длина ника превышает 32 символа');
    21. elseif (!isset($_POST['email']) || $_POST['email']==NULL)err_game('Неоходимо ввести Email');
    22. elseif(!isset($_POST['rules']))err_game('Нужно принять правила!');
    23. elseif (!preg_match('#^[A-z0-9-\._]+@[A-z0-9]{2,}\.[A-z]{2,4}$#ui',$_POST['email']))err_game('Неверный формат Email');
    24. elseif($result = mysqli_store_result($db->Query("SELECT COUNT(*) FROM `kolhoz_user` WHERE `email` = '".my_esc($_POST['email'])."'"),0)!=0)err_game("Пользователь с этим E-mail уже зарегистрирован");
    25. elseif (strlen2($_POST['password'])<6)err_game('По соображениям безопасности пароль не может быть короче 6-ти символов');
    26. elseif(strlen2($_POST['password'])>32)err_game('Длина пароля превышает 32 символа');
    27. elseif ($_POST['password']!=$_POST['password2'])err_game('Пароли не совпадают');
    28. else
    29. {
    30. if($_POST['pol']==0)$pol='0';else $pol='1';
    31. $db->Query("INSERT INTO `kolhoz_user` SET `nick` = '".my_esc($_POST['nick'])."', `password` = '".md5($_POST['password'])."', `pol` = '$pol', `email` = '".my_esc($_POST['email'])."', `money` = '0', `rubies` = '0', `status` = '".(mysql_result($db->Query("SELECT COUNT(*) FROM `kolhoz_user`"), 0)==0?3:0)."', ref_id = '".$_COOKIE['ref']."'");
    32. $_SESSION['id_user']=mysql_insert_id();
    33. header("Location:/?myfarm");
    34. exit;
    35. }
    36. }
    37.  
    38. ?>
    39. <table width="700" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="tab1">
    40. <table class="zag_page" align="center"><tbody><tr><td align="center" valign="middle">Регистрация</td></tr></tbody></table>
    41. </td></tr>
    42. <tr><td class="tab2">
    43. <div class="block_tab"><br>
    44. <form method="post">
    45.  
    46. <table border="0" align="center" width="600">
    47.    <tbody><tr>
    48. <td>
    49.       <span class="text">Логин:<font color="#FF0000">*</font></span><br>
    50.       <input class="inp_page" type="text" value="" name="nick" autocomplete="off" maxlength="20" placeholder="От 4 до 20 символов"><br>
    51.  
    52.       <span class="text">Пол:<font color="#FF0000">*</font></span><br>
    53.       <select class="select_page" name="pol">
    54.          <option value="1">Мужской</option>
    55.          <option value="0">Женский</option>
    56.       </select><br>
    57.  
    58.       <span class="text">Пароль:<font color="#FF0000">*</font></span><br>
    59.       <input class="inp_page" type="password" value="" name="password" autocomplete="off" maxlength="32" placeholder="От 6 до 32 символов"><br>
    60.  
    61.       <span class="text">Пароль повтор:<font color="#FF0000">*</font></span><br>
    62.       <input class="inp_page" type="password" value="" name="password2" autocomplete="off" maxlength="32" placeholder="От 6 до 32 символов"><br>
    63.  
    64.  
    65.       <span class="text">E-mail:<font color="#FF0000">*</font></span><br>
    66.       <input class="inp_page" type="email" value="" name="email" maxlength="50"><br>
    67.  
    68.  
    69.       <span class="text">Вас пригласил:</span><br>
    70.       <?
    71. $qqqq = $_COOKIE['ref'];
    72. $fre = $db->Query("SELECT * FROM kolhoz_user WHERE id = $qqqq");
    73. $rfa = $row->mysqli_fetch_array($fre);
    74. ?>
    75.             <input class="inp_page" type="" value="<?=$rfa['nick']; ?>" name="" disabled=""><br><br>
    76.            
    77.            
    78.            
    79.            
    80.            
    81.            
    82.             <td valign="top" align="center">
    83.            
    84.  
    85.            
    86.    
    87.  
    88.       <input name="rules" type="checkbox" style="width:16px; height:16px;"><label id="rules"><span class="text"><a class="link_s" href="?rules" target="_blank">Правила</a> игры прочитал и принимаю<font color="#FF0000">*</font></span></label><br>
    89.         </td>      
    90.       </td>
    91.    </tr>
    92.    <tr>
    93.       <td colspan="2">
    94.       <center><input type="submit" class="btn_small" value="Регистрация"></center>
    95.       </td>
    96.    </tr>
    97. </tbody></table>
    98. </form>
    99.  
    100. </div>
    101. </td></tr><tr><td class="tab3"></td></tr></tbody></table>
    102. <?
    103.  
    104. echo "<div></div>";
    105. include_once 'inc/foot.php';
    106. exit;
    107. }
    108. ?>
    если честно я ничего не понял,но я там echo добавил,правильно ли не знаю) объясни как включить ошибки? вместо Error_Reporting (0); поставить Error_Reporting (1); ?
     
  4. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    ты совсем плох! 8)

    на будущие! ЕХО пролемного запроса выглядить примерно так!
    1 ищи свой запрос!

    2 вместо выполнение выводи его себе на екран!

    например
    Код (PHP):
    1. $db->Query("INSERT INTO `kolhoz_user` SET `nick` = '".my_esc($_POST['nick'])."', `password` = '".md5($_POST['password'])."', `pol` = '$pol', `email` = '".my_esc($_POST['email'])."', `money` = '0', `rubies` = '0', `status` = '".(mysql_result($db->Query("SELECT COUNT(*) FROM `kolhoz_user`"), 0)==0?3:0)."', ref_id = '".$_COOKIE['ref']."'");
    2. //поменяй!!!!! суть махинации понял?
    3. echo ("INSERT INTO `kolhoz_user` SET `nick` = '".my_esc($_POST['nick'])."', `password` = '".md5($_POST['password'])."', `pol` = '$pol', `email` = '".my_esc($_POST['email'])."', `money` = '0', `rubies` = '0', `status` = '".(mysql_result($db->Query("SELECT COUNT(*) FROM `kolhoz_user`"), 0)==0?3:0)."', ref_id = '".$_COOKIE['ref']."'");
    4.  
    5.  
     
  5. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0




    Parse error: syntax error, unexpected T_ECHO, expecting ')' on line 27 вот какую ошибку выводит

    Добавлено спустя 1 минуту 7 секунд:


    вот эта строчка
    Код (Text):
    1. if($result = mysqli_store_result(echo("SELECT COUNT(*) FROM `kolhoz_user` WHERE `nick` = '".my_esc($_POST['nick'])."' LIMIT 1"),0)!=0)err_game("Этот ник уже зарегистрирован. Выберите другой!");
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    echo должен стоять отдельно, а не внутри вызова функции. Сделай как-то так:
    Код (Text):
    1. $sql = "SELECT......";
    2. echo $sql;
    3. Какое-то использование $sql