Variáveis ​​PHP na consulta mysql

Qual é o consenso sobre como inserir variables ​​em uma consulta MySQL usando a syntax de $wpdb->insert : ($table, array($column=>$value),$format) ?

Eu sei que isso não funcionou:

 $wpdb->update('wp_mytable', array('product'=>"$product")); 

Nem este:

 $wpdb->update('wp_mytable', array('product'=>$product)); 

Nem este:

 $insert_row = $wpdb->query($wpdb->prepare("INSERT INTO wp_mytable ( product ) VALUES (%s) ", $product)); 

Onde ecoar $ produto, de fato, ecoa a string que eu quero inserir.

A outra syntax que funcionou para mim no passado (mas não através da syntax $ wpdb) é:

 INSERT INTO wp_mytable ('product') VALUES '%s', $product; 

Ainda estou obtendo um valor de campo em branco no database com todos os methods acima. A linha é criada, mas o valor está faltando.

Atualização

 $insert_row = $wpdb->insert( 'wp_mytable', array( 'product' => $product, 'votes' => 1), array( '%s', '%d' ) ); 

Isso ainda produz uma input em branco na coluna do produto. O voto é contado para a linha, mas o campo do produto é deixado em branco.

É assim que eu declaro $ product:

 $product = wp_get_object_terms($post->ID,'product'); $product = strval($product[0]->name); 

Estou selecionando o nome do primeiro termo do object e certificando-se de que é uma string.

Também o que é interessante sobre a consulta de atualização é que, embora a cláusula WHERE tenha sua própria matriz, ela requer um AND para várias cláusulas. Isso é confuso se você estiver declarando variables ​​para os parâmetros WHERE:

 $update_vote = $wpdb->update( 'wp_mytable', array( 'votes' => $new_votes ), array( 'product' => $product 'company' => $company), // WHERE DOES 'AND' GO? array( '%d' ), array( '%s', '%s' ) ); 

Solutions Collecting From Web of "Variáveis ​​PHP na consulta mysql"

Para inserir uma nova linha :

 global $wpdb; $wpdb->insert( 'wp_mytable', array( 'product' => $product ), array( '%s' ) ); 

Por uma questão de integridade, a $wpdb->update é usada para atualizar uma linha existente e requer uma cláusula WHERE adicional, assim como uma consulta SQL “regular”. Por exemplo:

 global $wpdb; $wpdb->update( 'wp_mytable', array( 'product' => $product ), array( 'product_id' => 1312 ), array( '%s' ), array( '%d' ) );