Обновление результатов очистки запросов через PHP - PullRequest
1 голос
/ 16 сентября 2011

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

У меня есть блок кода для вставки новой записи в базу данных или обновления, если она уже существует.

Код:

            $name = mysql_real_escape_string($_REQUEST['name']);
            $title = mysql_real_escape_string($_REQUEST['title']);
            $content = $_REQUEST['content'];
    $lang_drop = mysql_real_escape_string($_REQUEST['lang']);
            if($uid == 0)
            {
                $maxSort = tools::getInfo($table, Array(), Array('MAX(sort_order) as sort_order'));
                $maxSort = $maxSort[0]['sort_order']+1;
                    $sql="insert into quemsomos (title,name,lang,sort_order)
                            values(
                                '$title',
                                '$name',
                                '$lang_drop',
                                $maxSort
                            )";
                        echo $sql;
                    mysql_query($sql);
                    $uid = mysql_insert_id();
            }
            else{
$maxSort = $data['sort_order'];
                    $sql="update `quemsomos` set `title`='blabkalm', `name`='{$name}', `lang`='{$lang_drop}', `sort_order`=$maxSort where `uid`={$uid}";
                    mysql_query($sql);
                    echo $sql;
                }

Довольно просто ... Если я вставлю новую запись, она будет работать нормально и напечатанное значение $ sql будет равно:

insert into quemsomos (title,name,lang,sort_order) values('title412', 'name421', 'pt', 3 )

Проблема в том, что при обновлении выполняется запрос, но в базе данных хранятся только жестко закодированные значения. Я имею в виду, что после обновления ниже все значения в БД пусты, за исключением сохраненного sort_order и заголовка (потому что он жестко закодирован ... если я укажу правильную переменную, поле также станет пустым)

echo $ sql для оператора update возвращает следующее:

update `quemsomos` set `title`='blabkalm', `name`='name421', `lang`='pt', `sort_order`=3 where `uid`=2

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

Имеет ли это смысл для кого-либо?

1 Ответ

0 голосов
/ 17 сентября 2011

Я думаю, что эта часть

`uid`={$uid}";

не в порядке.Вы можете быть уверены, что это так:

$sq='\''; 
$sql="update `quemsomos` set `title`='blabkalm', `name`=".$sq.$name.$sq.", `lang`=".$sq.
$lang_drop.$sq.", `sort_order`=".$sq.$maxSort.$sq." where `uid`=".$sq.$uid.$sq."   ";

Это должно работать.

Другое дело ... Ошибка mysql может помочь при отладке, вывести ошибку, не забудьтеиспользуйте это:

mysql_query($sql) or die(mysql_error());   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...