Php 如何从url拨打电话

Php 如何从url拨打电话,php,html,mysql,Php,Html,Mysql,我正在制作一个联盟计划,我根据fridgeblasteraffiliate.freeiz.com/affiliate/?numberherebasedonid这个链接计算点击次数,但我有这个 <?php $conn = mysqli_connect("redacted", "redacted", "redacted", "redacted"); if (!$conn) { die("Connection failed: ".mysqli_connect_error()

我正在制作一个联盟计划,我根据fridgeblasteraffiliate.freeiz.com/affiliate/?numberherebasedonid这个链接计算点击次数,但我有这个

    <?php
$conn = mysqli_connect("redacted", "redacted", "redacted", 
"redacted");
 if (!$conn) {
     die("Connection failed: ".mysqli_connect_error());
 }
 session_start();
  $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
 $sql = "SELECT clicks FROM affiliate WHERE ID='$ID'";
 $add = 1;
 $ID = strpos($url, needle)
 ?>

您想使用GET变量。请尝试以下URL:

fridgeblasteraffiliate.freeiz.com/affiliate/?id=numberherebasedonid
然后在脚本中使用
$\u GET['id']
访问该值

$sql = "SELECT clicks FROM affiliate WHERE ID='$_GET['id']'";
但是,请注意,此代码正如Magnus Eriksson在注释中所指出的,您可以通过将
$\u GET['id']
类型转换为int类型或使用准备好的语句来否定此代码:

$statement = $conn->prepare('SELECT clicks FROM affiliate WHERE ID=?');
$statement->bind_param('s', $_GET['id']);
$statement->execute();
铸造:

$id = (int)$_GET['id'];
$sql = "SELECT clicks FROM affiliate WHERE ID='$id'";
准备的发言:

$statement = $conn->prepare('SELECT clicks FROM affiliate WHERE ID=?');
$statement->bind_param('s', $_GET['id']);
$statement->execute();

与您的问题无关,但您应该将
session\u start()
放在打开的php标记下面。如果您这样做,您将为自己省去很多麻烦。请仔细阅读
$\u GET
-super-global:。像这样在url中传递参数通常称为“查询字符串”。顺便说一句,您当前正在尝试使用变量
$ID
后定义该变量。它需要在之前定义。此外,如果ID是数字的,请确保在db查询中使用它之前将其转换为整数,或者使用准备好的语句。否则,您将完全接受SQL注入。@Daniel创建链接和数字时,请不要忘记等号(=)
/affiliate/?id=
@JonathanConnery如果您只想在数据库中添加对该帖子的点击,您可以直接更新它。您不需要先选择它。只需执行
UPDATE affiliate SET clicks=clicks+1,其中ID=?
@Daniel感谢您帮助我加强了它,但我真正的问题是如何从url获取数字,将其添加到clicksMagnus的数据库中已经向您提供了查询。你真的不需要选择它,只需要更新它。只需使用该查询即可