powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запись в БД не производится, "Ошибка в добавлении"
39 сообщений из 39, показаны все 2 страниц
Запись в БД не производится, "Ошибка в добавлении"
    #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
Запись в БД не производится, "Ошибка в добавлении"
    #38870705
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
opiums,

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

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

Модератор: Тема перенесена из форума "ASP.NET".
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #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
Запись в БД не производится, "Ошибка в добавлении"
    #38871159
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mktime вообще выкинуть и вставить "NOW()"

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

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

SharuPoNemnogu,

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

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

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

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

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

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

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

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

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

k2-,

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

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

думаю, так виднее)
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #38871524
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а коннект к базе вообще есть? )
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #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
Запись в БД не производится, "Ошибка в добавлении"
    #38871649
opiums
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnogu,

конечно есть, я в базу сделал 2 записи, переход по сокращённым ссылкам работает, запрос на сокращение выводит сокращённую ссылку, типа "была такая - стала такая"
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #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
Запись в БД не производится, "Ошибка в добавлении"
    #38871665
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
opiums,

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

Лишь надпись:
Тестовая страница
-1 строк вставлено. -1 строк вставлено.
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #38871669
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
opiums,

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

да, на "1 строк вставлено"

там всего лишь нужно поменять function addUrl($url, $short) , только я не знаю на что
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #38871680
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
opiums,

лучше будет заменить все методы
но если процесс изучения как таковой вас не интересует, то так вроде будет работать
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function addUrl($url, $short) 
{
	$mysqli = new mysqli("localhost", "user", "pass", "db_name");
	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", $param1, $param2);
	$param1 = $url;
	$param2 = $short;
	$stmt->execute();
	$result = $stmt->affected_rows;
	$stmt->close();
	$mysqli->close();	
	return $result;
}



уточнение: поле created типа datetime
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #38871681
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-k2-,

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

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

действительно ужас, потому что запись в БД не производится, а в сокращённой ссылке используется short 1й строки базы
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #38871690
Фотография -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.
<html><head></head><body><div>Тестовая страница</div>
<?php
function addUrl($url, $short) 
{
	$mysqli = new mysqli("localhost", "redok1", "jkaJimP4", "db_redok1");
	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", $param1, $param2);
	$param1 = $url;
	$param2 = $short;
	$stmt->execute();
	$result = $stmt->affected_rows;
	$stmt->close();
	$mysqli->close();	
	return $result;
}
printf("%d строк вставлено.\n", addUrl("http://php.net/manual/ru/mysqli.prepare.php", 'hjh8979'));
?>
</body>
</html>


вполне себе работает

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

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

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

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

поле created=datetime?
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #38871707
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
var_dump(mysql_error())
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #38871714
opiums
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-k2-,

created = INT
а что это меняет?

ScareCrow,

var_dump(mysql_error()) = пустая страничка
...
Рейтинг: 0 / 0
Запись в БД не производится, "Ошибка в добавлении"
    #38871891
opiums
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
УРА!!! я нашёл причину, и так, поехали:

1. Я заменил надпись
Код: php
1.
 or die("</br>Ошибка в добавлении");

на
Код: php
1.
or die(mysql_error());


в ответ получил Field 'hits' doesn't have a default value
2. В БД, в столбце hits выставил значение по умолчанию 0 , и система сразу же заработала!

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


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