繁体   English   中英

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

[英]How to get parameters from a URL and use them in a MySQL query in PHP

因此,我将创建一个页面,该页面上以/?ref=123类型结尾的用户登陆到URL。 然后,我要实现的是在MySQL查询中使用该引用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,因此回复可能会很慢:)

**********编辑**********

由于我可能没有在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查询代码一起显示的位置。 然后,知道他的“参考”价值的特定捐助者将看到与他无关的结果。

使用PHP7可能看起来像这样

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

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

$orders = $sth->fetchAll();

您可能应该有一些处理错误的方法(未设置参考)

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


请注意,PHP 7引入了所谓的空合并运算符,该运算符简化了isset语句

PHP7的

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

PHP <7

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM