Мне нужно добавить данные в моей базе данных, и так или иначе формат должен быть,
0 — 0 или 1 — 5
я попробовал =>
mysqli_real_escape_string ();
но не сработало.
Я также попытался изменить знак на /, *, +, эксп.
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);
}
Проблема в том, что ваш оператор 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) . "'";
Других решений пока нет …