Я пытался создать раздел комментариев для моего сайта, используя PHP5, однако, когда я пытаюсь использовать метод $ _GET, он сохраняет неправильное значение в столбце базы данных. Первоначально я просто использовал $ _GET [‘pageid’], но это хранить NULL вместо целого числа, потому что $ _GET [‘pageid’] имеет строковый тип данных.
Затем я начал использовать (int) $ _ GET [‘pageid’], который будет хранить целое число, но неправильное значение. Это будет хранить 0 каждый раз. Я знаю, что у других людей была такая же проблема, как у меня, но я не нашел жизнеспособного решения.
Я могу получать комментарии из моей базы данных и публиковать их на соответствующих страницах, используя $ _GET [‘pageid’] после ручной вставки целых чисел в столбец pageID.
Если это имеет какое-то значение, я использую Webmatrix 3 с MySQLi и PHP5. Заранее спасибо!
if (isset($_POST['submit']))
{
$pageid = (int)$_GET['pageid'];
$username = $_SESSION['username'];
$comment = $_POST['comment'];
$query = "INSERT INTO comments (pageID, username, comment) VALUES (?, ?, ?)";
$statement = $databaseConnection->prepare($query);
$statement->bind_param('iss', $pageid, $username, $comment);
$statement->execute();
$statement->store_result();
if ($statement->error)
{
die('Database query failed: ' . $statement->error);
}
$creationWasSuccessful = $statement->affected_rows == 1 ? true : false;
if ($creationWasSuccessful)
{
header ("Location: index.php");
}
}
Если вы CAST строки в целое число, оно станет 0, если строка имеет числа в начале, только эти числа будут преобразованы в целое число, а также если строка начинается с пробела Пример: — «12word», результат будет 12
проверьте эти примеры
$str = 'Hello World 12';
$int = (int)$str;
echo $int; // 0$str = 'Hello World';
$int = (int)$str;
echo $int; // 0$str = 'Hello 12 World';
$int = (int)$str;
echo $int; // 12
$str = '12Hello World';
$int = (int)$str;
echo $int; // 12
Проверьте эту ссылку, чтобы получить больше идей. http://www.phpf1.com/tutorial/php-string-to-int.html
Других решений пока нет …