如何从URL获取参数并在PHP中的MySQL查询中使用它们

时间:2017-09-23 06:52:29

标签: php mysql variables url

因此,我将有一个页面,其中用户以URL结尾的/?ref=123类型登陆。 然后,我想要实现的是在MySQL查询中使用ref 123,如下所示: SELECT foo FROM table WHERE table.ref = 123

我遇到的问题是,如果我使用$_GET来获取变量,它会破坏我的SQL查询(显然!)

SELECT foo FROM table WHERE table.ref = $_GET['ref'];因为$_GET不是MySQL函数而失败。

麻烦的是,我想根据ref值动态创建页面内容,但我无法确定如何。

任何帮助都表示感谢。

时区GMT + 13所以回复可能会很慢:)

********** EDIT **********

由于我可能没有在OP中提供足够的信息,这里是我遇到的代码:

<?php
global $wpdb;
header('Content-Type: text/html; charset=utf-8');
include "../../../wp-config.php";

$get_donation_amount = "select SUM(amount) AS total_donations from SaveContactForm7_1 where ref = 123 ";
$get_donation_amount_result = $wpdb->get_results($get_donation_amount);
$total_donation = isset($get_donation_amount_result[0]->total_donations) && $get_donation_amount_result[0]->total_donations !="" ? $get_donation_amount_result[0]->total_donations :"0" ;
?> 

我需要做的是为ref的值添加对URL的调用,并将其与SQL查询代码一起显示。然后是一个知道他的参考资料的特定捐赠者。价值会看到与他相关的结果。

1 个答案:

答案 0 :(得分:2)

使用PHP7,这看起来像这样

$ref = $_GET['ref'] ?? null;

$sth = $dbh->prepare('SELECT foo FROM table WHERE table.ref = ?');
$sth->execute([$ref]);

$orders = $sth->fetchAll();

您应该有一些处理错误的方法(未设置ref)

请注意,最后一个变量(查询结果)称为订单。我不知道你期望的结果集是什么,但它只是为了说明它是有意义的称它为特定的(它实际上代表什么),而不是“行”,“结果”或类似。

请注意,PHP 7引入了所谓的null coalescing运算符,它简化了isset语句

PHP7

$ref = $_GET['ref'] ?? null;

PHP&lt; 7

$ref = isset($_GET['ref']) ? $_GET['ref']: null;