[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Unknown column '...' in 'field list'
blase
может это какой-то баг в mysql, просто ошибки с моей стороны не существует! сами посмотрите:
(тест-функция)

function writeDB($title="It the test title", $alias="it-the-test-title", $introtext="HellO! it is test message", $fulltext="And it - full test message", $state="1", $sectionid="4", $catid="29", $created="2011-01-29 18:10:01", $created_by="62", $created_by_alias="satiate", $metakey="It's are meta KEYs!", $metadesc="And it's meat data!"){
$this->db_action="INSERT INTO `jos_content` SET `title`=`$title`, `alias`=`$alias`, `introtext`=`$introtext`, `fulltext`=`$fulltext`, `state`=`$state`, `sectionid`=`$sectionid`, `catid`=`$catid`, `created`=`$created`, `created_by`=`$created_by`, `created_by_alias`=`$created_by_alias`, `metakey`=`$metakey`, `metadesc`=`$metadesc`";
mysql_query($this->db_action) or die('Error: Failed db action. '.mysql_error());
mysql_close($this->db_connect) or die('Error: Failed db closed. '.mysql_error());
}

or die('Error: Failed db action. '.mysql_error()) показывает такую ошибку:
Error: Failed db action. Unknown column 'It the test title' in 'field list'

бред какой-то!
причем тут column 'It the test title'!??? Таблица jos_content существует, колонка title - аналогично.
не понимаю в чем дело?!... помогите пожалуйста!
пробовал и в формате: "insert into `...` (...) values (...)" - тоже самое!



Спустя 5 минут, 26 секунд (29.01.2011 - 21:22) Winston написал(а):
Попробуй одинарные кавычки
$alias='it-the-test-title', $introtext='HellO! it is test message'

И так переделай
`title`='". $title ."', `alias`='". $alias ."'

И может стоит использовать конкатенацию?
$title="It the test title" . $alias="it-the-test-title".

Спустя 1 минута, 45 секунд (29.01.2011 - 21:23) blase написал(а):
Цитата (PHPprogramer @ 29.01.2011 - 18:22)
Попробуй одинарные кавычки
<pre class="sh_sourceCode" rel="php"><span class="sh_variable">$alias</span><span class="sh_symbol">=</span><span class="sh_string">'it-the-test-title'</span><span class="sh_symbol">,</span> <span class="sh_variable">$introtext</span><span class="sh_symbol">=</span><span class="sh_string">'HellO! it is test message'</span></pre>
И так переделай
<pre class="sh_sourceCode" rel="php">`title`<span class="sh_symbol">=</span><span class="sh_string">'". $title ."'</span><span class="sh_symbol">,</span> `alias`<span class="sh_symbol">=</span><span class="sh_string">'". $alias ."'</span></pre>
И может стоит использовать конкатенацию?
<pre class="sh_sourceCode" rel="php"><span class="sh_variable">$title</span><span class="sh_symbol">=</span><span class="sh_string">"It the test title"</span> <span class="sh_symbol">.</span> <span class="sh_variable">$alias</span><span class="sh_symbol">=</span><span class="sh_string">"it-the-test-title"</span><span class="sh_symbol">.</span></pre>

1) пробовал
2) пробовал
3) пробовал


....мдауж(((

он ведь мне не выдаёт ошибку синтаксиса, думаю не в кавычках дело... а в чем???

Спустя 8 минут, 30 секунд (29.01.2011 - 21:32) blase написал(а):
почему он отзывается на 'It the test title' как на название колонки??:
Unknown column 'It the test title'
странно...
когда я исправляю эту строку 'It the test title' на 'title'(название колонки). то он переходит к следующему к alias:
Unknown column 'it-the-test-title'
и т.д., в итоге(когда я всё исправляю под название колонки, то) отправляет он всё таки запрос без ошибок, но полностью пустой!

Спустя 2 минуты, 48 секунд (29.01.2011 - 21:35) Winston написал(а):
Ты задаешь
$title="It the test title" - это строка
А в запрос подставляется
`title`=`It the test title`
А ` (обратные апострофы обозначают имя поля). Потому и ошибка неизвестное поле 'It the test title'
Потому попробуй ещё раз во всём запросе таким образом записать
`title`='". $title ."'

Спустя 2 минуты, 9 секунд (29.01.2011 - 21:37) blase написал(а):
также я обратил внимание, что только те колонки ведут себя таким образом, у кого в структуре обозначено сравнение "utf8_general_ci":
user posted image
то есть state, sectionid, catid и т.д. отправляются нормально и ошибка с unknown column не выдается

Спустя 2 минуты, 3 секунды (29.01.2011 - 21:39) blase написал(а):
Цитата (PHPprogramer @ 29.01.2011 - 18:35)
А ` (обратные апострофы обозначают имя поля). Потому и ошибка неизвестное поле 'It the test title'

ааааа, понял... ок. попробую...


....



Спустя 3 минуты, 30 секунд (29.01.2011 - 21:42) blase написал(а):
$this->db_action="INSERT INTO `jos_content` SET `title`='".$title."', `alias`='".$alias."', `introtext`='".$introtext."', `fulltext`='".$fulltext."', `state`='".$state."', `sectionid`='".$sectionid."', `catid`='".$catid."', `created`='".$created."', `created_by`='".$created_by."', `created_by_alias`='".$created_by_alias."', `metakey`='".$metakey."', `metadesc`='".$metadesc."'";
mysql_query($this->db_action) or die('Error: Failed db action. '.mysql_error());

Error: Failed db action. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's are meta KEYs!', `metadesc`='And it's meat data!'' at line 1

Спустя 2 минуты, 13 секунд (29.01.2011 - 21:44) Invis1ble написал(а):
blase
в запросе переменные обрабатывай mysql_real_escape_string(), у тебя ошибка синтаксиса из-за апострофа в тексте

Спустя 9 секунд (29.01.2011 - 21:45) Winston написал(а):
Видишь апостроф в
$metadesc="And it's meat data!"
Пиши в запросе `metadesc`='".mysql_real_escape_string($metadesc)."'"

Спустя 29 секунд (29.01.2011 - 21:45) blase написал(а):
хех))... ага я уже увидел, только что сообщение писал:
дело в:
$metakey="It's are meta KEYs!", $metadesc="And it's meat data!"
а именно: It's, с символом '

Спустя 1 минута, 2 секунды (29.01.2011 - 21:46) blase написал(а):
заработало)) спасибо большое!!!)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.