У меня есть тип данных поля VARCHAR в MySQL.
Он должен сохранять данные как 495/1,495/2
но когда я запускаю запрос из PHP, он сохраняет в MySQL, как 495, 247.5
, поэтому в основном mysql делит значения.
Тогда я попробовал это
$sfno = $_POST['sfno']; // i am getting value from HTML form the value is 495/2
$sfno = explode("/",$sfno);
$sfnom = "$sfno[0]"."-"."$sfno[1]";
затем mysql вычтите значения и сохраните их как 494,493
так как я могу сохранить арифметические операторы в базе данных MySQL?
Вам нужно поместить переменную между кавычками в строке запроса, чтобы предотвратить вычисление.
$sfnom = "$sfno[0]"."-"."$sfno[1]";
Становится (обратите внимание на одинарные кавычки внутри строки):
$sfnom = "'$sfno[0]"."-"."$sfno[1]'";
Вам также нужно декодировать его по URL (% 2f /
иначе он будет содержать 2f
вместо /
):
$sfnom = urldecode("'$sfno[0]"."-"."$sfno[1]'");
Так INSERT INTO sfarea(sfareaid,sfno,sftotarea,sfsoldarea) values(2003,495/2,9854,0)
будет выглядеть так:
INSERT INTO sfarea(sfareaid,sfno,sftotarea,sfsoldarea) values(2003,'495/2',9854,0)
Единственный способ хранить арифметические операторы — это строка, поэтому вам нужно заключить ее в кавычки.
Других решений пока нет …