Запрос UPDATE не хочет работать.

MeryJey

Новичок
Всем привет, помогите решить проблему.
PHP:
include('settings/mysqlconnect.php');
if(isset ($_POST['submit']))
	{
		$title = $_POST['Title'];
		$editor1 = $_POST['editor1'];
		$editor2 = $_POST['editor2'];
		$author = $_POST['Author'];
		$date = $_POST['Date'];
		$materialName = $_GET['materialName'];
		$id = $_GET['edit'];
		if(mysql_query("UPDATE newsBlock SET 
						Title='$title'
						Author='$author'
						Date='$date'
						WHERE id=1"))
		{
			echo "Успешно!";
		}
		else
		{
			echo "Ошибка!:".mysql_error();
		}
Выдаёт следующие:
Ошибка!: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 'Author='Admin' Date='2011-05-20' WHERE id=1' at line 3
 

tz-lom

Продвинутый новичок
посмотри в доку MySQL про UPDATE
а вообще - где контроль переменных из $_POST
 

MeryJey

Новичок
вот скрипт целиком
PHP:
include('settings/mysqlconnect.php');
if(isset ($_POST['submit']))
	{
		$title = $_POST['Title'];
		$editor1 = $_POST['editor1'];
		$editor2 = $_POST['editor2'];
		$author = $_POST['Author'];
		$date = $_POST['Date'];
		$materialName = $_GET['materialName'];
		$id = $_GET['edit'];
		if(mysql_query("UPDATE newsBlock SET 
						Title='$title'
						Author='$author'
						Date='$date'
						WHERE id=1"))
		{
			echo "Успешно!";
		}
		else
		{
			echo "Ошибка!:".mysql_error();
		}
	}
else {
	$edit = $_GET['edit'];
	$materialName = $_GET['materialName'];
	$adminEditQ = mysql_query("SELECT * FROM $materialName WHERE id='$edit'");
	if(!$adminEditQ) {
		exit('Ошибка выборки из базы newsBlock');
	}
	else {
		$adminEdit = mysql_fetch_array($adminEditQ);
		echo"
		<div id='workingArea'>
		<div id='workingHead'>Редактирование [".$adminEdit['Title']."]</div>
		<div id='workingCentrZone'>
		<div class='edit'>
		<form action='index.php?request=edit&materialName=newsBlock&edit=".$adminEdit['id']."'' method='post'>
		<label>Название:</label><br />
		<input name='Title' type='text' size='30' maxlength='250' value='".$adminEdit['Title']."'><br /><br />
		<textarea id='editor1' name='editor1'>".$adminEdit['Description']."</textarea><br />
		<textarea id='editor2' name='editor2'>".$adminEdit['FullText']."</textarea>
		<label>by ckeditor</label>
		<script type='text/javascript'>
		CKEDITOR.replace( 'editor1' );
		CKEDITOR.replace( 'editor2' );
		</script>
		<br /><br />
		<label>Автор:</label><br />
		<input name='Author' type='text' size='30' maxlength='250' value='".$adminEdit['Author']."'><br /><br />
		<label>Дата:</label><br />
		<input name='Date' type='text' size='30' maxlength='250' value='".$adminEdit['Date']."'><br /><br />
		<input name='submit' type='submit' value='Редактировать' />
		</form>		
		</div>
		</div>
		</div>";
	}
}
Пробовал вывести переменные до выполнения запроса все нормально вывелось.
В синтаксисе тоже вроде проблем нету.
 

MeryJey

Новичок
AmdY,
Спасибо, невнимательность =(
baev,
Глянем.

запятые проставил код работает, но тут новая беда я на сайте хочу использовать ckeditor но как рас с ним возникают проблемы, вот новый запрос
PHP:
UPDATE newsBlock SET 
Title='$title',
Description='$editor1',
FullText='$editor2',
Author='$author',
Date='$date'
WHERE id=1
выдаёт вот что:
Ошибка!: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 'FullText='

Полный текст
', Author='Admin', Date='2011-05' at line 4
 

scorpion-ds

Новичок
MeryJey, все же экранирую передаваемые в БД данные, к примеру используй addcslashes.

Если уже даже упустить, что тебе могут сделать SQL инъекцию, ты просто не сможешь использовать кавычки в запросе.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Да тут автору давно все описали, осталось только пойти по ссылкам и прочитать. Добавлю лишь, что стоит посмотреть в сторону http://ru2.php.net/pdo
 

AmdY

Пью пиво
Команда форума
c0dex
вот, единственный правильный совет, который следовало дать.

я здесь посматриваю на ветку про файловую бд и понимаю. что лучше не советовать, а сразу тему закрывать, а то направляем людей по ложному следу. есть дороги, про которые нужно знать НЕ КАК ходить, а лучше не просто НЕ ХОДИТЬ
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я в той теме вообще не понял ничего, главный вопрос был "нахрена? О_о", коммерческой/бизнес применимости того решения нет, для себя писать разве что.
 
Сверху