首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将GET变量转换为要在SQL查询中使用的PHP字符串

将GET变量转换为要在SQL查询中使用的PHP字符串
EN

Stack Overflow用户
提问于 2019-02-21 04:09:44
回答 2查看 33关注 0票数 0

对于一个基本的项目,我试图模拟一个带有MySQL数据库后端的自动售货机。我的问题是:当用户按下他们想要购买的按钮时,应该显示该项目的价格。但是,当我尝试使用基于按下的按钮的变量从数据库中查询价格时,它没有显示价格。但是,当我在查询中插入项的名称时,它确实起作用了。

我已经用这个生成了一个表。

代码语言:javascript
复制
echo "<tr><td>" . $snackName . "</td><td>" . $price . "
      <a href = 'buying.php?varname= " . $snackName . "'><button>Buy</button></a>
      </td></tr>";

然后在购买页面上,我尝试这样做。

代码语言:javascript
复制
$snackChoice = $_GET['varname'];
$sql = ("SELECT `price` FROM `snacks` WHERE `snackName` = '$snackChoice'");

但是,在显示此信息时,页面上不显示任何内容。但是当我用诸如“玛氏酒吧”之类的东西来替代它时,它的价格就会显示出来。我应该怎么做才能根据用户按下的按钮显示价格?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-21 04:19:48

我可以建议您使用id而不是snakName来执行查询。

如果您有,如果没有,请将其作为AUTO_INCREMENT添加到表中。这将更容易管理、清理和查询数据库。

代码语言:javascript
复制
$snackId = $_GET['snackId'];

// perform validation, mitigate SQL injection

if(!is_numeric($snackId)){
    // redirect the user
    header('redirect:index.php');
    exit();

    // or change the value to 0...
    $snakId = 0;
}

$sql = ("SELECT `price` FROM `snacks` WHERE `snackid` = '$snackId'");

在表单中,只需将名称替换为id。

代码语言:javascript
复制
print "<tr>
          <td>" . $snackName . "</td>
          <td>" . $price . "
             <a href = 'buying.php?snackId= " . $snackId . "'><button>Buy</button></a>
          </td>
       </tr>";
票数 0
EN

Stack Overflow用户

发布于 2019-02-21 04:12:25

去掉'$snackChoice‘前后的单个撇号:

代码语言:javascript
复制
"SELECT `price` FROM `snacks` WHERE `snackName` = $snackChoice"

代码语言:javascript
复制
"SELECT `price` FROM `snacks` WHERE `snackName` = '" . $snackChoice . "'"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54794487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档