MYSQL - пустая строка == 0 проблема (обновляет строку с первичным ключом 0 вместо вставки) - PullRequest
0 голосов
/ 02 декабря 2010

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

Дело:
У меня следующий запрос.Переменная $ DB-id является пустой строкой, если содержимое, которое я хочу сохранить, является новым.Поле module_id - мой первичный ключ.В результате этот запрос всегда обновляет строку с module_id => 0.

Проблема
Передача пустой переменной в качестве первичного ключа всегда обновляет строку 0 вместо вставкиновый.

$this->db->query("INSERT INTO   modules_text 
                                (   
                                module_id,
                                module_content,
                                module_page_idx, 
                                module_post_id
                                )
                  VALUES        (
                                '{$DB_id}',
                                '{$content['text']}',
                                '{$content['idx']}',
                                '{$post_id}'
                                )
                  ON DUPLICATE KEY
                  UPDATE        module_content  = '{$content['text']}',
                                module_page_idx = '{$content['idx']}'
                ");

У кого-нибудь есть идеи, как я могу сказать MYSQL создать новую строку ???Любая помощь очень ценится !!!!Большое спасибо !!!

Салудос Саша!

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Вам может потребоваться установить в поле первичного ключа значение автоинкремента. Пример ниже.

CREATE TABLE tablename (
 id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (id)) 
0 голосов
/ 02 декабря 2010

Я бы предположил, что вам нужно ОБНОВИТЬ ГДЕ?
Например:

$this->db->query("INSERT INTO   modules_text 
                                (   
                                module_id,
                                module_content,
                                module_page_idx, 
                                module_post_id
                                )
                  VALUES        (
                                '{$DB_id}',
                                '{$content['text']}',
                                '{$content['idx']}',
                                '{$post_id}'
                                )
                  ON DUPLICATE KEY
                  UPDATE        `module_content`  = '{$content['text']}',
                                `module_page_idx` = '{$content['idx']}'
                  WHERE
                                `module_id` = '{$content['id']}'
                ");

Не держите меня за это, xD, просто на первый взгляд.

...