я вставил значения SQL в таблицы с PHP, которые раньше читали файл .txt.
Дело в том, что я не могу работать с этими значениями.
PHP читает файл .txt '8,00' и правильно вставляет это значение в базу данных, но если я выполню strlen(), он вернет 6, а tu вернет 4.
текстовое сообщение: текст в .txt
if (in_array($fileActualExt, $allowed)){
if ($fileError == 0){
if ($fileSize > 5000){
echo "Tu archivo es muy grande!";
} else{
$fileNameNew = uniqid('', true).".".$fileActualExt;
$fileDestination = 'uploads/'.$fileNameNew;
move_uploaded_file($fileTmpName, $fileDestination);
$file = fopen("uploads/$fileNameNew","r");
if ($file) {
if (($line = fgets($file)) !== false) {
$ram = $line;
}
if (($line = fgets($file)) !== false) {
$cpu = $line;
}
if (($line = fgets($file)) !== false) {
$so = $line;
}
if (($line = fgets($file)) !== false) {
$gpu = $line;
}
if ($i=1) {
$sql = "INSERT INTO comparar (ram,cpu,gpu,so) VALUES ('$ram','$cpu','$gpu','$so')";
$conn->query($sql);
}
session_start();
$session_array2 = array($ram,$cpu,$gpu,$so);
$_SESSION['nombre2'] = $session_array2;
fclose($file);
@kissumisha Я не могу получить какое-либо значение, вставленное с помощью PHP, из базы данных. Я имею в виду, что одна из строк, которая считывает PHP из txt-файла, имеет значение 8.00 и, очевидно, имеет 4 символа, но прежде чем я помещу ее в базу данных из PHP, я делаю strlen($ram), которая имеет значение 8.00. и это показывает мне, что его длина равна 6, поэтому он добавляет в базу данных 8,00 с длиной 6, из которых 2 «невидимы».
8,00 плюс \r и \n будут составлять символы шесть.






Спасибо за пояснение выше. Кажется, что когда вы извлекаете текст из txt-файла, вы также извлекаете символ новой строки \n.
Очистите значение, которое вы хотите вставить, например:
strlen(str_replace(array("\n", "\r\n", "\r"), '', $ram));
Теперь это должно вернуть правильную длину для значения, с которым вы пытаетесь работать.
Это должно быть похоже на $ram2 = str_replace("\r\n","",$ram); для меня, но ты мне очень помог, чувак, большое тебе спасибо <3.
Если вы довольны решением, пожалуйста, примите его, чтобы оно помогло другим в будущем. Привет!
Но пожалуйста начинают работать с подготовленными операторами, потому что код подвержен SQL-инъекциям.
Марк, правильно ли настроены поля SQL? Что повторяет значение, если вы извлекаете его обратно из базы данных? Для меня «8,00» — это 6 символов, а 8,00 — это 4 символа, если вы читаете это как строку. Вы можете это прояснить?