插入函数变量时出现SQL错误

时间:2018-09-29 00:01:25

标签: php sql

我尝试将第一个函数产生的值用作第二个函数的参数,但是SQL给我错误不能为NULL

Erreur de la base de données WordPress : [Column 'option_price' cannot be null]
INSERT INTO `wp_options_prices` (`option_name`, `option_value`, `option_price`) VALUES ('single-checkbox---3499163', 'Location du système vidéo : 5€', NULL)

我的第一个功能:

function get_option_price($option_name,$option_value) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'options_prices'; 

    $optionprix = $wpdb->get_var("SELECT option_price FROM `$table_name` WHERE option_name = '$option_name' AND option_value = '$option_value'");
    echo $optionprix;

$wpdb->show_errors();
}

我的php调用了第二个函数:

<?php 
$optionprix = get_option_price($field['name'],$field['value']);
set_option_price($field['name'],$field['value'],$optionprix);
echo $optionprix;
?>

我的第二个功能:

function set_option_price($option_name,$option_value,$option_price) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'options_prices'; 

$data = array('option_name' => $option_name, 'option_value' => $option_value, 'option_price' => $option_price);

$wpdb->insert($table_name,$data);

$wpdb->show_errors();
}

回声还可以,它可以正确打印我的值,但是尝试将其用作我的第二个函数的参数无效。

如果我将$ optionprix =“ 10”包括在内,则我的第二个功能可以正常工作。

2 个答案:

答案 0 :(得分:1)

您实际上并没有从get_option_price函数返回期权价格,这就是$option_price为NULL的原因。添加return

function get_option_price($option_name,$option_value) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'options_prices'; 

    $optionprix = $wpdb->get_var("SELECT option_price FROM `$table_name` WHERE option_name = '$option_name' AND option_value = '$option_value'");
    echo $optionprix;

    $wpdb->show_errors();
    return $optionprix;
}

答案 1 :(得分:0)

错误清楚地表明,表option_price中的字段wp_options_prices不能为NULL

尝试:

INSERT INTO `wp_options_prices` (`option_name`, `option_value`, `option_price`) 
VALUES ('single-checkbox---3499163', 'Location du système vidéo : 5€', '5'