2014-10-06 2 views
1

Я пытаюсь добавить некоторые данные к пользовательскому-DB-таблицы, как это:MODX REVO + PHP MySQL - вставить данные в указанную строку таблицы

$sql ="insert into ext_user_data (userdata_id,vorname,nachname) values('$id','$vorname','$nachname')"; 
$stmt = $modx->prepare($sql); 
$stmt->execute(); 

Это прекрасно работает, ожидать с помощью этого кода я 'Получая новую строку в таблице ext_user_data. Я хочу, чтобы добавить эти данные к существующему ряду, как это:

$sql ="insert into ext_user_data where id='136'(userdata_id,vorname,nachname) values('$id','$vorname','$nachname')"; 
$stmt = $modx->prepare($sql); 
$stmt->execute(); 

Но не используя этот код ничего добавляется к DB-таблице.

Так как я могу добавить что-то в эту таблицу custom-db к данному первичному ключу? Первичный ключ такой же, как и $ id.

ответ

1

Чтобы обновить данные в существующей строке вы используете другую команду SQL, ваш код должен выглядеть следующим образом:

$sql ="update ext_user_data set `vorname` = '$vorname', `nachname` = '$nachname' where id='$id'"; 
$stmt = $modx->prepare($sql); 
$stmt->execute(); 
+0

спасибо Йоэль, это работает отлично ... можете ли вы сказать мне, что делать, если строка таблицы еще не существует и должна быть создана? Я только что обнаружил, что этот случай может случиться, что таблица-строка не существует. –

+0

@EMEm добро пожаловать. Для этого вам нужно будет написать запрос типа «SELECT' id' FROM ext_user_data WHERE 'id' = '$ id'", а затем проверить, сколько строк использует $ stmt-> num_rows или что-то подобное. вы можете проверить дополнительную информацию [link] (http://php.net/manual/en/mysqli-result.num-rows.php) –

+0

oh, не видел твой новый комментарий ... сейчас я использую this: if (mysql_num_rows (mysql_query ("SELECT ext_user_data WHERE userid = '$ id'"))) { // Код внутри if block, если идентификатор пользователя уже существует $ sql = "update ext_user_data set' vorname' = '$ vorname ', 'nachname' =' $ nachname 'где id =' $ id '"; $ stmt = $ modx-> prepare ($ sql); $ stmt-> execute(); } else { $ sql = "insert in ext_user_data (id, userdata_id, vorname, nachname) значения ('$ id', '$ id', '$ vorname', '$ nachname')"; $ stmt = $ modx-> prepare ($ sql); $ stmt-> execute(); } ... кажется, работает ... –

Смежные вопросы