У меня есть система, состоящая из веб-формы & Mysql сервер работает на 2008 R2. Я установил MySql & PMA без проблем и проверил, что они работают и доступны. Я создал эту систему на компьютере разработчика, и все работает хорошо. Теперь, когда я переместил файлы на работающий сервер, я получаю следующее сообщение об ошибке «localhost via TCP / IP string (61)« Неверное десятичное значение: »для столбца« desiccant_1 »в строке 1».
У кого-нибудь есть решение этой ошибки? Спасибо за ваше время. Я включил все файлы, если требуется дополнительная информация, пожалуйста, дайте мне знать.
Имя базы данных — comms.
Веб-форма:
<body>
<p>Complete form and submit:</p>
<form class="form" method="post" action="ealwReport.php">
<label for="desiccant_1">desiccant_1</label>
<input type="number"step="0.01" name="desiccant_1" min="0" max="16.5" /><br />
<label for="desiccant_2">desiccant_2</label>
<input type="number"step="0.01" name="desiccant_2" min="0" max="16.5" /><br />
<label for="desiccant_3">desiccant_3</label>
<input type="number"step="0.01" name="desiccant_3" min="0" max="16.5" /><br />
<label for="desiccant_4">desiccant_4</label>
<input type="number"step="0.01" name="desiccant_4" min="0" max="16.5" /><br />
<label for="desiccant_5">desiccant_5</label>
<input type="number"step="0.01" name="desiccant_5" min="0" max="16.5" /><br />
<label for="desiccant_6">desiccant_6</label>
<input type="number"step="0.01" name="desiccant_6" min="0" max="16.5" /><br />
<br />
<label for="laser_1">laser_1</label>
<input type="number"step="0.01" name="laser_1" min="0" max="16.5" /><br />
<label for="laser_2">laser_2</label>
<input type="number"step="0.01" name="laser_2" min="0" max="16.5" /><br />
<label for="laser_3">laser_3</label>
<input type="number"step="0.01" name="laser_3" min="0" max="16.5" /><br />
<label for="laser_4">laser_4</label>
<input type="number"step="0.01" name="laser_4" min="0" max="16.5" /><br />
<label for="laser_5">laser_5</label>
<input type="number"step="0.01" name="laser_5" min="0" max="16.5" /><br />
<label for="laser_6">laser_6</label>
<input type="number"step="0.01" name="laser_6" min="0" max="16.5" /><br />
<br />
<label for="table_top_1">table_top_1</label>
<input type="number"step="0.01" name="table_top_1" min="0" max="16.5" /><br />
<label for="table_top_2">table_top_2</label>
<input type="number"step="0.01" name="table_top_2" min="0" max="16.5" /><br />
<br />
<label for="RMI">RMI</label>
<input type="number"step="0.01" name="RMI" min="0" max="16.5" /><br />
<label for="Miscellaneous">Miscellaneous</label>
<input type="number"step="0.01" name="Miscellaneous" /><br />
<br />
<label for="User">User</label>
<input type="text" name="User" /><br />
<label for="Date">Date</label>
<input input type="text" name="Date" value="<?php echo date('F j, Y, G:i');?>" readonly/><br />
<label for="comments">Comments?</label>
<textarea class="text" name="comments"></textarea><br />
<br />
<input type="submit" class="submit" value="submit" name="submit" />
</form>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Date();
</script>
</body>
Веб-форма размещена в следующем скрипте «ealwReport.php»:
<?php
$desiccant_1 = $_POST['desiccant_1'];
$desiccant_2 = $_POST['desiccant_2'];
$desiccant_3 = $_POST['desiccant_3'];
$desiccant_4 = $_POST['desiccant_4'];
$desiccant_5 = $_POST['desiccant_5'];
$desiccant_6 = $_POST['desiccant_6'];
$laser_1 = $_POST['laser_1'];
$laser_2 = $_POST['laser_2'];
$laser_3 = $_POST['laser_3'];
$laser_4 = $_POST['laser_4'];
$laser_5 = $_POST['laser_5'];
$laser_6 = $_POST['laser_6'];
$table_top_1 = $_POST['table_top_1'];
$table_top_2 = $_POST['table_top_2'];
$RMI = $_POST['RMI'];
$Miscellaneous = $_POST['Miscellaneous'];
$User = $_POST['User'];
$Date = $_POST['Date'];
$comments = $_POST['comments'];
$dbc = mysqli_connect('localhost', 'root', 'xxxxx', 'comms')
or die('Error connecting to MySQL server.');
echo mysqli_get_host_info($dbc) . "\n";
Вставить данные в базу данных:
$query = "INSERT INTO ealw (desiccant_1, desiccant_2, desiccant_3, desiccant_4, " .
"desiccant_5, desiccant_6, laser_1, laser_2, laser_3, laser_4, laser_5, " .
"laser_6, table_top_1, table_top_2, RMI, Miscellaneous, User, Date, comments) " .
"VALUES ('$desiccant_1', '$desiccant_2', '$desiccant_3', '$desiccant_4', '$desiccant_5', " .
"'$desiccant_6', '$laser_1', '$laser_2', '$laser_3', '$laser_4','$laser_5', " .
"'$laser_6', '$table_top_1','$table_top_2', '$RMI', " .
"'$Miscellaneous', '$User', '$Date', '$comments')";
$result = mysqli_query($dbc, $query)
or die (var_dump(mysqli_error($dbc)));
ERROR RECEIVED = localhost через строку TCP / IP (61) «Неверное десятичное значение: » для столбца ‘desiccant_1’ в строке 1″
Вернуть последнюю запись из БД:
$sql2 = "SELECT desiccant_1, desiccant_2, desiccant_3, desiccant_4, desiccant_5
, desiccant_6, laser_1, laser_2, laser_3, laser_4, laser_5, laser_6
, table_top_1, table_top_2, RMI, Miscellaneous FROM ealw ORDER BY id DESC LIMIT 1";
$result2 = mysqli_query($dbc, $sql2);
?>
Структура таблицы:
CREATE TABLE IF NOT EXISTS `ealw` (
`id` int(11) NOT NULL,
`desiccant_1` decimal(4,2) NOT NULL DEFAULT '0.00',
`desiccant_2` decimal(4,2) NOT NULL DEFAULT '0.00',
`desiccant_3` decimal(4,2) NOT NULL DEFAULT '0.00',
`desiccant_4` decimal(4,2) NOT NULL DEFAULT '0.00',
`desiccant_5` decimal(4,2) NOT NULL DEFAULT '0.00',
`desiccant_6` decimal(4,2) NOT NULL DEFAULT '0.00',
`laser_1` decimal(4,2) NOT NULL DEFAULT '0.00',
`laser_2` decimal(4,2) NOT NULL DEFAULT '0.00',
`laser_3` decimal(4,2) NOT NULL DEFAULT '0.00',
`laser_4` decimal(4,2) NOT NULL DEFAULT '0.00',
`laser_5` decimal(4,2) NOT NULL DEFAULT '0.00',
`laser_6` decimal(4,2) NOT NULL DEFAULT '0.00',
`table_top_1` decimal(4,2) NOT NULL DEFAULT '0.00',
`table_top_2` decimal(4,2) NOT NULL DEFAULT '0.00',
`RMI` decimal(4,2) NOT NULL DEFAULT '0.00',
`Miscellaneous` decimal(4,2) NOT NULL DEFAULT '0.00',
`User` text NOT NULL,
`Date` text NOT NULL,
`comments` text
) ENGINE=InnoDB AUTO_INCREMENT=85 DEFAULT CHARSET=latin1;
Спасибо всем за их вклад. Моя проблема была решена путем отключения «строгого» режима в БД Mysql, как это предложил Кенни. Я использовал PMA & введено — SET @@ global.sql_mode = »; чтобы отключить строгий режим. Система теперь работает как положено.
Других решений пока нет …