Если есть строка для user_id, то я хочу обновить, если не вставить (но мне сказали использовать замену). В таблице есть id (который является первичным ключом, auto inc) и user_id (индекс, сессия относится к). У меня есть форма, что, когда изменяются данные он должен быть изменен в базе данных для конкретного пользователя в сессии, в противном случае он просто добавляется для конкретного пользователя в сессииupdate then replace dies
if (empty($err)) {
$thesis_Name = mysql_real_escape_string($_POST['thesis_Name']);
$abstract = mysql_real_escape_string($_POST['abstract']);
$query="UPDATE thesis SET thesis_Name ='$thesis_Name',
abstract='$abstract' WHERE id='$_SESSION[user_id]'
IF ROW_COUNT()=0
REPLACE INTO thesis (thesis_Name,abstract)VALUES ('$thesis_Name', '$abstract')
";
mysql_query($query) or die();
// query is ok?
if (mysql_query($the_query, $link)){
// redirect to user profile
header('Location: myaccount.php?id=' . $user_id);
}
С этой страницы просто умирает.
EDIT:
`thesis` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`thesis_Name` varchar(200) NOT NULL,
`abstract` varchar(200) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
)
Большое спасибо
Вы ** действительно ** должны использовать подготовленные заявления! Если вы не знаете, как и почему, читайте о [Bobby Tables] (http://bobby-tables.com). – eggyal
@eggyal: 'php :: mysql' не поддерживает их. '$ _SESSION' не предоставляется пользователям, другие переменные экранируются. – Quassnoi
@Quassnoi: Справедливая точка ... хотя это все еще заставляет меня дрожать. – eggyal