如何在mysqli / php中使用$ _GET从URL中提取一个整数?

时间:2018-09-19 04:45:43

标签: php mysqli

如何在MySQLI / PHP中使用$ _GET从URL中提取整数以绑定到SQL语句中?

制作一个博客式页面,其中内容存储在数据库中,这意味着可以有多个页面而无需大量文件。

在索引页面上,有指向这些页面的链接,一旦单击,URL就会更改为已发布ID的博客页面:

pages / article.php?id = 1

这是-

for($x=0;$x<$articlesFetched;++$x){
    $row=mysqli_fetch_array($data);
    //create div
    echo '<div class="col-lg-4 col-md-6 col-sm-6 col-xs-12" id="articleDiv">';
    echo "<img class='img-responsive' id='articleImage' src=".$row['articleThumbnail'].">";  
    echo '<h5><a href="article.php?id='.$row['articleId'].'">'.$row['articleHeadline'].'</a></h5>';
    echo '<p>',$row['articleSummary']," ",'</p>';
    echo '<div class="row">';
    echo '<p>' , $row['articleTopic']," | ",'</p>';
    echo '<p>', $row['articleSubTopic']," | ",'</p>';
    echo '<p>',$row['articleDate']," | ",'</p>';
    echo '</div>';            
    echo '</div>';
}

PS-请原谅,缩进,复制和粘贴似乎弄乱了格式。

为了区分页面内容之间的区别,我使用了一个ID,该ID可以绑定到SQL语句,例如'SELECT * FROM table WHERE id=?'

在这里:

$id=$_GET['articleId'];
$stmt = $conn->prepare("SELECT * FROM Article WHERE articleId=?");
$stmt->bind_param("i",$id);
$stmt->execute();

但是,当打开网页时,没有内容,因为存在未定义的索引错误,指向$id=$_GET['articleId'];

在检查是否设置了$id=$_GET['articleId'];变量时,输出为FALSE。

3 个答案:

答案 0 :(得分:2)

实际上,您的网址变成了这样的样子:-

article.php?id=1 //for example

所以您需要做:-

$id = $_GET['id']; // not $_GET['articleId']

答案 1 :(得分:0)

$_GET中,您使用了articleId,但在URL上粘贴的是id。这两个名称必须相同,然后才能获取数据。

例如

www.yoursite.com/category?q=myname

<?php
   echo $_GET['q'];  //Output: myname
?>

答案 2 :(得分:0)

您的网址pages/article.php?id=1 但是您使用$id=$_GET['articleId'];

您简单地使用它$id=$_GET['id'];

代码:

$id=$_GET['id'];
$stmt = $conn->prepare("SELECT * FROM Article WHERE articleId=?");
$stmt->bind_param("i",$id);
$stmt->execute();