我一直在尝试使用PHP5为我的网站构建评论部分,但是当我尝试使用$ _GET方法时,它会在数据库列中存储错误的值。最初我只使用了$ _GET [&# 39; pageid']但这会存储NULL而不是整数,这是因为$ _GET [' pageid']有一个字符串数据类型。
然后我开始使用(int)$ _ GET [' pageid']这将存储一个整数但错误的值。它每次都会存储0。我知道其他人遇到了和我一样的问题,但我找不到可行的解决方案。
我能够从我的数据库中检索注释,并在pageID列中手动插入整数后,使用$ _GET [' pageid']将注释发布到各自的页面。
如果它有任何区别我正在使用带有MySQLi和PHP5的Webmatrix 3。提前谢谢!
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");
}
}
答案 0 :(得分:0)
如果你将一个字符串CAST为整数,它将变为0,如果该字符串在开头有数字,那么只有那些数字将被转换为整数,如果一个字符串以空格Ex: - " 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