Почему мой запрос не будет вставлен в мою базу данных? - PullRequest
0 голосов
/ 27 августа 2011

Я создал запрос для вставки нескольких определенных значений в мою базу данных:

function upload_text($text, $categories) {
$idea = mysql_real_escape_string(htmlentities($text));
$categories = mysql_real_escape_string(htmlentities($categories));
mysql_query("INSERT INTO `textfiles` VALUES ('', '".$_SESSION['user_id']."', '$text', '$categories', UNIX_TIMESTAMP() )"); }

Информация, представленная в запросе, собирается с сайта ввода PHP / HTML, который состоит из следующего кода (сокращенно):

<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<font size='2' face='arial'>Your text:
<textarea cols="150" rows="5" name="text" maxlenght='500'></textarea>
<font size='2' face='arial'>Categories:
<textarea cols="150" rows="1" name="categories" maxlenght='100'></textarea>
<input type='submit' name='sub' value='Submit'>  </form>

if (isset($_POST['sub'])) {
$text = $_POST['text'];
$categories = $_POST['categories'];
$upload = upload_text($text, $categories);
      exit();

}

Когда я тестирую свой сайт через localhost и отправляю текст, как я ожидаю, пользователь сделает, текст фактически не будет передан в мою базу данных. Он остается пустым.

Кто-нибудь, пожалуйста, помогите мне понять, какие ошибки у меня есть в моем коде, или какие ошибки я делаю, потому что я не могу их найти.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 27 августа 2011

Функция должна быть заключена в фигурные скобки:

function upload_text($text, $categories) {
    $idea = mysql_real_escape_string(htmlentities($text));
    $categories = mysql_real_escape_string(htmlentities($categories));
    $SQL = "INSERT INTO `textfiles` 
            VALUES ('', 
                    '".$_SESSION['user_id']."', 
                    '$text', 
                    '$categories',
                    UNIX_TIMESTAMP() 
                   )";
    echo $SQL;
    mysql_query($SQL);
}

У вас также должно быть активное соединение с сервером БД, чтобы это работало.

Также было бы очень полезно посмотреть, как выглядит ваш SQL-код до того, как запрос будет выполнен , поэтому , используя мой код выше echo out $SQL непосредственно перед тем, как он будет передан mysql_query().

В качестве хорошего первого шага для отладки я предлагаю вам включить ведение журнала ошибок в верхней части вашего скрипта:

ini_set('display_errors', true);
ini_set('error_reporting', E_ALL);
0 голосов
/ 27 августа 2011

Заменить это:

mysql_query("INSERT INTO `textfiles` VALUES ('', '".$_SESSION['user_id']."', '$text', '$categories', UNIX_TIMESTAMP() )"); }

с этим:

mysql_query("INSERT INTO `textfiles` VALUES ('', '".$_SESSION['user_id']."', '$text', '$categories', UNIX_TIMESTAMP() )") or die(mysql_error()); }

для обнаружения ошибки. Затем отладка ..

0 голосов
/ 27 августа 2011

Пожалуйста, поместите содержимое функции в фигурные скобки в коде, указанном

function upload_text($text, $categories)
{
$idea = mysql_real_escape_string(htmlentities($text));
$categories = mysql_real_escape_string(htmlentities($categories));
mysql_query("INSERT INTO `textfiles` VALUES ('', '".$_SESSION['user_id']."', '$text', '$categories', UNIX_TIMESTAMP() )");
}

также вы не закрываете скобу в:

 if (isset($_POST['sub'])) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...