Usando drupal_write_record para hacer insert_or_update

OK, así que leí sobre drupal_write_record, que aparentemente sirve como una función que hace un insert_or_update.

Sin embargo, por lo que he leído, no sabe por sí mismo si hacer la inserción o la actualización, pero esto está determinado por la existencia (o no) del tercer parámetro: $primary_keys que por defecto es array(). ¿Es esto cierto? ¿Tengo que seleccionar primero el registro, ver si existe y luego pasar o no el tercer parámetro a drupal_write_record?

Estoy preguntando esto, porque la forma en que normalmente hago una función de inserción o actualización es hacer una selección basada en la(s) clave(s) principal(es), y si la fila existe, entonces tengo que hacer una actualización, si no, una inserción. ¿No es esta la forma en que drupal_write_record obras?

Usando Drupal 7.0 por cierto.

preguntado el 12 de junio de 12 a las 16:06

¿Con qué versión de Drupal estás trabajando? -

Drupal 7.0, lo siento, olvidé mencionarlo. Lo agregaré a la pregunta. -

1 Respuestas

Según la documentación:

$claves_primarias: Para indicar que se trata de un nuevo registro que se va a insertar, omita este argumento. Si se trata de una actualización, este argumento especifica los nombres de campo de las claves principales. Si solo hay 1 campo en la clave, puede pasar una cadena; si hay varios campos en la clave, pase una matriz.

Fuente: Documentación de la API drupal_write_record

Si el tercer parámetro-- $primary_keys-- es una matriz con los nombres de campo para las claves principales, luego intentará actualizar un registro existente. Si omite un valor $primary_keys, por defecto será una matriz vacía, lo que significa que insertará un nuevo registro con su propia ID única.

Respondido el 12 de junio de 12 a las 16:06

No estaba seguro incluso después de leer los documentos, pero revisé el código de la función y tienes razón, tengo que verificar si debo hacer una inserción o una actualización. Gorrón. - eduardo luca

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.