没有以mysql数据库格式添加的数字(数字 - 数字)

时间:2014-10-30 16:17:44

标签: php mysqli numbers

我需要在我的数据库中添加数据,格式必须是这样或那样的,

0 - 0或1 - 5

我试过=>  mysqli_real_escape_string();

但没有用。

我也尝试将标志更改为/,*,+,exp。

PHP 
$dataBase->_insertDataBase('tableNaam', $input);

function _insertDataBase($tabel,$input){ 

    $velden='';
    $waarden='';
    $i=0;

    foreach($input AS $key=>$value){
        $i=$i+1;
        if($i !== count($input)){
            $a=', ';
        }else{
            $a='';
        }            
        $velden.=$key.$a;
        $waarden.=$value.$a;
        unset($a);
    }  

    $sql = "INSERT INTO `$tabel`($velden) VALUES ($waarden)";
    $this->_conn()->query($sql);

}

1 个答案:

答案 0 :(得分:0)

问题是你的SQL语句将等式5-1作为一个值,所以服务器正在进行数学运算并插入4就像你告诉它的那样。你需要通过用撇号(即'5-1')包围值来告诉它它是一个文字字符串。

替换:

foreach ($input AS $key => $value) {
    $i = $i + 1;
    if ($i !== count($input)) {
        $a = ', ';
    } else {
        $a = '';
    }
    $velden .= $key . $a;
    $waarden .= $value . $a;
    unset($a);
}

使用:

$velden = array();
$waarden = array();
foreach ($input AS $key => $value) {
    $velden[] = $key;
    $waarden[] = $value;
}
$velden = implode(',', $velden);
$waarden = "'" . implode("','", $waarden) . "'";

甚至可能:

$velden = array_keys($input);
$waarden = array_values($input);
$velden = implode(',', $velden);
$waarden = "'" . implode("','", $waarden) . "'";