Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запись в БД не производится, "Ошибка в добавлении" / 25 сообщений из 39, страница 1 из 2
03.02.2015, 17:00
    #38870619
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
Доброго времени суток, уважаемые люди. Я пытаюсь сделать сервис сокращения ссылок, но при попытки сократить ссылку, получаю ошибку, запись в БД не производится. Подключение к БД есть, если вручную прописать сокращённую ссылку и полную, он её видит, переход по ней работает, но при попытки сократить - "Ошибка в добавлении".

Содержимое исполняемого файла "model.php":
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
<?php

    function addUrl($url, $short)
    {
        $t = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y"));
        $resAddUrl = mysql_query("INSERT INTO `urls` (`url`,`short`,`created`,`lastupdated`) VALUES"
            ."                                ('". mysql_real_escape_string($url) ."','". mysql_real_escape_string($short) ."','". mysql_real_escape_string($t) ."','". mysql_real_escape_string(0) ."')") or die("Ошибка в добавлении");
    }
	
	function showUrl($c=1) 
    
    {
        $resViewUrls = mysql_query("SELECT * FROM `urls` ORDER BY `created` DESC,`id` DESC LIMIT ".$c) or die("Ошибка вывода");
        while($rwu = mysql_fetch_assoc($resViewUrls))
        {
            $sn = SITE_URL ."/". $rwu['short'];
            return $sn;
        }
    }
	
    function searchUrl($url)
    {
        $ress = mysql_query("SELECT * FROM `urls` WHERE `url`='". mysql_real_escape_string($url) ."'") or die ("Ошибка базы данных 1<br>".mysql_error());
        
        if(mysql_num_rows($ress) > 0)
        {
            $surl = mysql_fetch_assoc($ress);
            $short = SITE_URL ."/". $surl['short'];
            return $short;
        }
        return false;
    }
	
    function searchShort($short)
    {
        $resss = mysql_query("SELECT * FROM `urls` WHERE `short`='". mysql_real_escape_string($short) ."'") or die ("Ошибка базы данных 2<br>".mysql_error());
        
        if(mysql_num_rows($resss) > 0)
        {
            $ssho = strtolower($short);
            $sshort = strrev($ssho);
            return $sshort;
        }
        return false;
        
    }
	
	    function getNameUrl($len = 4)
    {
        $nUrl = chr(mt_rand(65, 90));
        for($i = 1; $i < $len; $i++)
        {
            
            switch (mt_rand(0, 2))
            {
                
                case  2 : 
                $nUrl .= chr(mt_rand(65, 90));
                break;
                
                case  1 : 
                $nUrl .= chr(mt_rand(97, 122));
                break;
                
                case  0 : 
                $nUrl .= chr(mt_rand(48, 57));
                break;
            }
        }
        return $nUrl;
    }


Быть может где-то в коде допущена ошибка, или что-то не работает, подскажите пожалуйста?
...
Рейтинг: 0 / 0
03.02.2015, 18:25
    #38870705
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
opiums,

Так вы это того... Вам на ПХП форуме надо задавать этот вопрос.
...
Рейтинг: 0 / 0
03.02.2015, 18:36
    #38870716
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
Axeleron,

да заметил, я случайно, не знаю теперь как перенести туда тему
...
Рейтинг: 0 / 0
03.02.2015, 21:50
    #38870823
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
какой же это кромешный ужас

Модератор: Тема перенесена из форума "ASP.NET".
...
Рейтинг: 0 / 0
04.02.2015, 10:34
    #38871108
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
hVostt,
1. вот это
Код: php
1.
$t = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y"));


я бы заменил на
Код: php
1.
  $t=time()

;
2. В запросе $resAddUrl попробуй вручную проставить нужные значения
...
Рейтинг: 0 / 0
04.02.2015, 11:35
    #38871159
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
mktime вообще выкинуть и вставить "NOW()"

var_dump в помощь. Выводи запрос и смотри что там в итоге мускулу отдается. Попробуй его через phpmyadmin сделать, узнаешь какая ошибка
...
Рейтинг: 0 / 0
04.02.2015, 12:43
    #38871261
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
kunaksergey,

вставил time(), вместо mktime(...)
вручную там где именно вводить?

SharuPoNemnogu,

попробовал вывести var_dump ($resAddUrl);
но в ответ увидел лишь NULL
...
Рейтинг: 0 / 0
04.02.2015, 13:04
    #38871304
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
opiums,

Код: php
1.
2.
$resAddUrl = mysql_query("INSERT INTO `urls` (`url`,`short`,`created`,`lastupdated`) VALUES"
            ."                                ('". mysql_real_escape_string($url) ."','". mysql_real_escape_string($short) ."','". mysql_real_escape_string($t) ."','". mysql_real_escape_string(0) ."')") or die("Ошибка в добавлении");



1. посмотрите как формируется запрос. т.е перед $resAddUrl = mysql_query... вставьте:
Код: php
1.
2.
3.
$str="INSERT INTO `urls` (`url`,`short`,`created`,`lastupdated`) VALUES"
            ."                                ('". mysql_real_escape_string($url) ."','". mysql_real_escape_string($short) ."','". mysql_real_escape_string($t) ."','". mysql_real_escape_string(0) ."')";
echo $str;



2. в этот запрос вставьте в Value какие нибудь значения.
...
Рейтинг: 0 / 0
04.02.2015, 13:22
    #38871332
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
в $resAddUrl результат выполнения mysql_query? а вардампить надо сам запрос, который внутри mysql_query - var_dump("INSERT INTO `urls`...");
...
Рейтинг: 0 / 0
04.02.2015, 13:31
    #38871349
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
kunaksergey,
и так, запрос формируется правильно:
Код: php
1.
INSERT INTO `urls` (`url`,`short`,`created`,`lastupdated`) VALUES ('http://123.ru','BiIB','1423045734','0')
...
Рейтинг: 0 / 0
04.02.2015, 13:33
    #38871353
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
авторmysql_query — Посылает запрос MySQL
Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

mysqli_query()
PDO::query()
...
Рейтинг: 0 / 0
04.02.2015, 13:40
    #38871360
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
ScareCrow,

у меня PHP 5.3.29
...
Рейтинг: 0 / 0
04.02.2015, 13:43
    #38871361
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
opiums,

desc `urls` ?
...
Рейтинг: 0 / 0
04.02.2015, 13:51
    #38871374
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
-k2-,

с выводом проблем нет, DESC - сортировка же?
...
Рейтинг: 0 / 0
04.02.2015, 13:54
    #38871379
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
opiums,
посмотри структуру таблицы urls.

если вручную установить значения в Values-записывает?
...
Рейтинг: 0 / 0
04.02.2015, 13:59
    #38871387
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
opiums,

нет, не сортировка, структура(desc-ription) таблицы
вводить в phpmyadmin
...
Рейтинг: 0 / 0
04.02.2015, 14:30
    #38871439
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
kunaksergey,

Вручную если прописать - выводит, но не записывает в таблицу.

k2-,

phpmyadmin не использую, предпочитаю HeidiSQL.
Структура таблицы такая - id, url, short, created, lastupdated, hits
Если вручную в таблицу прописать значения, и попробовать сократить ссылку по url, то он выведет ответ http://сайт short, всё как и положенно.
...
Рейтинг: 0 / 0
04.02.2015, 14:38
    #38871450
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
opiums,

это не структура, вы просто перечислили названия полей, хотя проще было результат приложить
обязательные поля есть например? формат столбцов?
...
Рейтинг: 0 / 0
04.02.2015, 14:44
    #38871460
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
-k2-,

думаю, так виднее)
...
Рейтинг: 0 / 0
04.02.2015, 15:43
    #38871524
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
а коннект к базе вообще есть? )
...
Рейтинг: 0 / 0
04.02.2015, 16:01
    #38871549
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
opiums,

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

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<html>
<head></head>
<body>

<div>Тестовая страница</div>

<?php 
$mysqli = new mysqli("localhost", "user", "pass", "dbname");
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "INSERT INTO `urls` (`url`, `short`, `created`) VALUES (?,?,now());";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ss", $url, $short);

$url = 'http://php.net/manual/ru/mysqli.prepare.php';
$short = 'hjh8979';
$stmt->execute();
printf("%d строк вставлено.\n", $stmt->affected_rows);

$url = 'http://php.net/manual/ru/mysqli-stmt.bind-param.php';
$short = 'k786sdf';
$stmt->execute();
printf("%d строк вставлено.\n", $stmt->affected_rows);

$stmt->close();
$mysqli->close();
?>

</body>
</html>
...
Рейтинг: 0 / 0
04.02.2015, 17:22
    #38871649
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
SharuPoNemnogu,

конечно есть, я в базу сделал 2 записи, переход по сокращённым ссылкам работает, запрос на сокращение выводит сокращённую ссылку, типа "была такая - стала такая"
...
Рейтинг: 0 / 0
04.02.2015, 17:36
    #38871660
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
-k2-,

я попробовал запустить у себя эту тестовую страничку, изменив только данные для подключения на свои, и ту же БД
результат:
Код: php
1.
2.
Тестовая страница
prepare($query); $stmt->bind_param("ss", $url, $short); $url = 'http://php.net/manual/ru/mysqli.prepare.php'; $short = 'hjh8979'; $stmt->execute(); printf("%d строк вставлено.\n", $stmt->affected_rows); $url = 'http://php.net/manual/ru/mysqli-stmt.bind-param.php'; $short = 'k786sdf'; $stmt->execute(); printf("%d строк вставлено.\n", $stmt->affected_rows); $stmt->close(); $mysqli->close(); ?>
...
Рейтинг: 0 / 0
04.02.2015, 17:44
    #38871665
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
opiums,

я не знаю как вам удалось получить такой результат с этого кода :)
проверьте кавычки. возможно при вставке поторопились
...
Рейтинг: 0 / 0
04.02.2015, 17:46
    #38871668
opiums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в БД не производится, "Ошибка в добавлении"
-k2-,

Лишь надпись:
Тестовая страница
-1 строк вставлено. -1 строк вставлено.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запись в БД не производится, "Ошибка в добавлении" / 25 сообщений из 39, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]