Este equipo de redactores ha estado largas horas buscando para dar espuestas a tu interrogante, te ofrecemos la soluciones de modo que esperamos resultarte de gran apoyo.
Solución:
Bien, ¡lo descubrí!
Configuración de matrices para valores reales y marcadores de posición
$values = array();
$place_holders = array();
la consulta inicial:
$query = "INSERT INTO orders (order_id, product_id, quantity) VALUES ";
Luego recorra los valores que desea agregar e insértelos en las matrices apropiadas:
foreach ( $_POST as $key => $value )
array_push( $values, $value, $order_id );
$place_holders[] = "('%d', '%d')" /* In my case, i know they will always be integers */
Luego agregue estos bits a la consulta inicial:
$query .= implode( ', ', $place_holders );
$wpdb->query( $wpdb->prepare( "$query ", $values ) );
También puede usar esta forma de construir la consulta:
$values = array();
// We're preparing each DB item on it's own. Makes the code cleaner.
foreach ( $items as $key => $value )
$values[] = $wpdb->prepare( "(%d,%d)", $key, $value );
$query = "INSERT INTO orders (order_id, product_id, quantity) VALUES ";
$query .= implode( ",n", $values );
Me encontré con este problema y decidí crear una función más mejorada utilizando también la respuesta aceptada:
/**
* A method for inserting multiple rows into the specified table
*
* Usage Example:
*
* $insert_arrays = array();
* foreach($assets as $asset)
*
* $insert_arrays[] = array(
* 'type' => "multiple_row_insert",
* 'status' => 1,
* 'name'=>$asset,
* 'added_date' => current_time( 'mysql' ),
* 'last_update' => current_time( 'mysql' ));
*
*
*
* wp_insert_rows($insert_arrays);
*
*
* @param array $row_arrays
* @param string $wp_table_name
* @return false|int
*
* @author Ugur Mirza ZEYREK
* @source http://stackoverflow.com/a/12374838/1194797
*/
function wp_insert_rows($row_arrays = array(), $wp_table_name)
global $wpdb;
$wp_table_name = esc_sql($wp_table_name);
// Setup arrays for Actual Values, and Placeholders
$values = array();
$place_holders = array();
$query = "";
$query_columns = "";
$query .= "INSERT INTO $wp_table_name (";
foreach($row_arrays as $count => $row_array)
foreach($row_array as $key => $value)
if($count == 0)
if($query_columns)
$query_columns .= ",".$key."";
else
$query_columns .= "".$key."";
$values[] = $value;
if(is_numeric($value))
if(isset($place_holders[$count]))
$place_holders[$count] .= ", '%d'";
else
$place_holders[$count] .= "( '%d'";
else
if(isset($place_holders[$count]))
$place_holders[$count] .= ", '%s'";
else
$place_holders[$count] .= "( '%s'";
// mind closing the GAP
$place_holders[$count] .= ")";
$query .= " $query_columns ) VALUES ";
$query .= implode(', ', $place_holders);
if($wpdb->query($wpdb->prepare($query, $values)))
return true;
else
return false;
Fuente: https://github.com/mirzazeyrek/wp-multiple-insert
Puntuaciones y reseñas
No se te olvide dar difusión a esta sección si lograste el éxito.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)