$wpdb->上次选择选项的插入不起作用

时间:2020-02-16 作者:Ernesto Alonso

在阅读了类似问题的帖子后$wpdb->insert 我找不到解决我问题的正确方法。

我有一个模板页面,在该页面中,我将数据发送(通过POST)到另一个模板页面,以向wordpress数据库中的自定义表添加行。

其中一个值来自select,除非它不是select的最后一个选项,否则将接收并处理该值。太奇怪了,我启用了wpdb->show_Errors() 选择最后一个选项时,将显示:

WordPress database error: [] SHOW FULL COLUMNS FROM `pagos`.
这只会在我选择select的最后一个选项时发生,我在最后一个位置添加了一个额外的选项并将其隐藏起来,但这不是一个合适的解决方案。这是我的代码,提前谢谢你。

PS:正如你所看到的,我回显了一些变量来查看发生了什么,结果是我之前写的。THX。

第1页代码:

<div id="divPago" class="content-container">
<form id ="formAgregarPago" method="POST" action= "<?php echo $agregarPagoURL; ?>" >
    <input id="pagoNombre" name="pagoNombre" type="text" placeholder="Nombre">
    <select id="pagoTipo" name="pagoTipo">
      <option value = "Pago Evento">Pago Eventos</option>
      <option value  = "Pago Anual">Pago Anual</option>
      <option value  = "Pago Regular" hidden >Pago Regular</option>
    </select>   
    <input id="pagoMonto" name= "pagoMonto" type="text" placeholder="Monto">
    <button id="botonAgregarPago">Agregar</button>
    <button id="botonCancelarPago">Cancelar</button>    

</form>

第2页代码:

if( isset($_POST[\'pagoNombre\'] )  && isset($_POST[\'pagoTipo\'])  && isset($_POST[\'pagoMonto\']) ){  

    global $wpdb;

    $nombre =$_POST[\'pagoNombre\'];
    $tipo = $_POST[\'pagoTipo\'];
    $monto = $_POST[\'pagoMonto\'];

    $wpdb->show_errors();

    $result = $wpdb->insert(\'pagos\', array(
        "id"=>"",
        "nombre" => $nombre, 
        "tipo" => $tipo, 
        "monto" => $monto), 
    array("%d","%s", "%s", "%d"));

    echo "<br>Error:".$wpdb->print_error();
    echo "<br>Result:".$result;
    echo "<br>Last Error:".$wpdb->last_error;

    echo "<br>Var_DUMP:".var_dump($result);
    echo "</div>";
   }
   else{
     echo ("No llegan los datos !!!");
   }

1 个回复
SO网友:kuroyza

这个ID 不能为空。如果已创建表并设置ID 作为自动增量,您不必插入它,它将自动生成。

因此,您只需执行以下操作:

$result = $wpdb->insert(\'pagos\', array(
        "nombre" => $nombre, 
        "tipo" => $tipo, 
        "monto" => $monto), 
    array("%s", "%s", "%d"));

相关推荐

$wpdb->使用LIKE返回空数组而不是行进行准备

我试图使用LIKE和通配符从表中选择数据。我基本上什么都试过了。以下是WordPress文档中的最后一段代码:<?php global $wpdb; $table_name = $wpdb->prefix . \'city\'; $city= \'New York\'; $city = $wpdb->esc_like( $city ); $city = \'%\' . $city . \'%\'; $