Число, не добавляемое в формате базы данных mysql (число — число)

Мне нужно добавить данные в моей базе данных, и так или иначе формат должен быть,

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);

}

1

Решение

Проблема в том, что ваш оператор 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) . "'";
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]