我可以使用isset()来控制mysql查询的执行

斯图·帕克

我创建了一个可编辑的数据库,以帮助我自动执行每周的会员更新。每个成员每周更新9个值,这些值由$ _POST提交到辅助php进行控制。

从该php中,将发布值设置为php var,然后用于更新sql db。

mysql_select_db("web_footy1") or die(mysql_error());




// The SQL statement is built
$strSQL = "UPDATE Round_6 SET "; 

$strSQL = $strSQL . "Game1= '$Game1', ";

$strSQL = $strSQL . "Game2= '$Game2', "; 

$strSQL = $strSQL . "Game3= '$Game3', "; 

$strSQL = $strSQL . "Game4= '$Game4', "; 

$strSQL = $strSQL . "Game5= '$Game5', "; 

$strSQL = $strSQL . "Game6= '$Game6', "; 

$strSQL = $strSQL . "Game7= '$Game7', "; 

$strSQL = $strSQL . "Game8= '$Game8', "; 

$strSQL = $strSQL . "Game9= '$Game9' "; 

$strSQL = $strSQL . "WHERE  Member = '$Member' "; 

// The SQL statement is executed 
mysql_query($strSQL) or die(mysql_error()) ;

是的,我知道这需要进行SQL注入,它是一个私有站点,因此安全性可以等待atm

问题在于所有值都将同时更新,并且要更新一个值,您需要重新输入所有值,否则它们将被替换为空值。

所以我的问题是双重的。A)能够分别控制每个变量的最干净方法是什么,B)我可以吗?如果可以,如何使用isset($ GameX)控制执行哪些查询。

例如

IF (isset($Game1)) {UPDATE Round6 SET Game1='$Game1' WHERE Member='$Member'} ;

请记住,三周前,我对编码一无所知,并在那时以html,php和sql崩溃。

Ben

真的真的不建议您修复SQL注入。

话虽如此,您可以以编程方式向您的UPDATE子句添加条件。以下示例可能是一个示例:

<?php

$Game3 = "things";
$Game5 = "stuff";
$Game6 = "awesome";
$Member = 'ben';

$update_parts = array();
for ($game_counter = 1; $game_counter < 10; $game_counter++) {
    $variable_name = "Game" . $game_counter;
    if ( isset($$variable_name) ) { // This is like isset($Game1)
        $update_parts[] = "Game" . $game_counter . " = '" . $$variable_name . "'";
    }
}

if ( sizeof($update_parts) > 0 ) {
    $strSQL = "UPDATE Round_6 SET ";
    $strSQL .= implode(", ", $update_parts);
    $strSQL .= " WHERE Member = '$Member'";
    echo $strSQL;
}

我在顶部放了几个变量。这将产生以下SQL:

UPDATE Round_6 SET Game3 = 'things', 
  Game5 = 'stuff', Game6 = 'awesome' WHERE Member = 'ben'

编辑:如果要使用PDO,则需要将查询和参数分开。在下面的示例中,我将Query参数放入

$conn = new PDO("mysql:host=localhost;dbname=database;","username","password"); // Your Connection String

$update_parts = array();
$query_params = array();
for ($game_counter = 1; $game_counter < 10; $game_counter++) {
    $variable_name = "Game" . $game_counter;
    if ( isset($$variable_name) ) { // This is like isset($Game1)
        $update_parts[] = "Game" . $game_counter . " = ?";
        $query_params[] = $$variable_name;
    }
}

if ( sizeof($update_parts) > 0 ) {
    $strSQL = "UPDATE Round_6 SET ";
    $strSQL .= implode(", ", $update_parts);
    $strSQL .= " WHERE Member = ?";
    $query_params[] = $Member;

    // Here is where you'd run the update
    $stmt = $conn->prepare($strSQL);
    $stmt->execute($query_params); // Notice I'm passing in the parameters separately
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用isset()来控制mysql查询的执行

来自分类Dev

我可以使用查询的行结果来运行子查询并获取返回的数据吗?

来自分类Dev

我可以使用purrr执行dplyr查询并保存每个查询输出的结果

来自分类Dev

我可以使用ngModelController的$ formatter来完全控制输入字段的呈现方式吗?

来自分类Dev

我可以使用Reactive Extensions来控制仪器测试周期的时间吗?

来自分类Dev

有什么办法可以使用浏览器来控制我的电脑

来自分类Dev

我可以使用ngModelController的$ formatter来完全控制输入字段的呈现方式吗?

来自分类Dev

我可以使用命令提示符来控制连接的设备吗?

来自分类Dev

我可以使用 rails 控制台来识别唯一的种子数据吗

来自分类Dev

我可以使用选择器来控制跨 div 的这个复选框吗?

来自分类Dev

我可以使用哪些编码或设计模式来执行所需的方法调用序列?

来自分类Dev

我可以使用C ++的[strftime]来执行Java的SimpleDateFormat吗?

来自分类Dev

我可以使用Java来执行“寻求1 + 2!+ 3!+ ... + 20!并且”吗?

来自分类Dev

我可以使用LINQ查询来联接和过滤F#序列吗?

来自分类Dev

我可以使用LINQ查询来计算用属性中的where过滤的总行数吗?

来自分类Dev

我们可以使用 django canvas 来运行 2 个组并行任务来执行 celery 任务吗

来自分类Dev

我们是否可以使用条件查询来查找记录的一个选择查询的结果

来自分类Dev

MySQL:我可以使用一个SELECT ... FOR UPDATE来“保护”多个表吗?(锁定)

来自分类Dev

MySQL:我可以使用一个SELECT ... FOR UPDATE来“保护”多个表吗?(锁定)

来自分类Dev

是否可以使用较少的冗余来执行此代码?

来自分类Dev

我可以使用mysql或psql控制台连接到Tarantool吗?

来自分类Dev

是否可以使用OFFSET和乘法来分页查询?

来自分类Dev

可以使用自动查询来查找NULL值吗?

来自分类Dev

我可以使用一个控制器来更新AngularJS中的两个视图吗?

来自分类常见问题

我可以使用自由文本单词执行MySQL搜索吗?

来自分类Dev

我可以使用makefile来制作具有不同#define的多个可执行文件吗?

来自分类Dev

进行常规升级后,请执行Clean Mavericks的安装,我可以使用恢复分区来进行安装吗?

来自分类Dev

我可以使用makefile来制作具有不同#define的多个可执行文件吗?

来自分类Dev

我可以使用单个 Zephyr 测试用例来维护多个设备上的测试执行记录吗?

Related 相关文章

  1. 1

    我可以使用isset()来控制mysql查询的执行

  2. 2

    我可以使用查询的行结果来运行子查询并获取返回的数据吗?

  3. 3

    我可以使用purrr执行dplyr查询并保存每个查询输出的结果

  4. 4

    我可以使用ngModelController的$ formatter来完全控制输入字段的呈现方式吗?

  5. 5

    我可以使用Reactive Extensions来控制仪器测试周期的时间吗?

  6. 6

    有什么办法可以使用浏览器来控制我的电脑

  7. 7

    我可以使用ngModelController的$ formatter来完全控制输入字段的呈现方式吗?

  8. 8

    我可以使用命令提示符来控制连接的设备吗?

  9. 9

    我可以使用 rails 控制台来识别唯一的种子数据吗

  10. 10

    我可以使用选择器来控制跨 div 的这个复选框吗?

  11. 11

    我可以使用哪些编码或设计模式来执行所需的方法调用序列?

  12. 12

    我可以使用C ++的[strftime]来执行Java的SimpleDateFormat吗?

  13. 13

    我可以使用Java来执行“寻求1 + 2!+ 3!+ ... + 20!并且”吗?

  14. 14

    我可以使用LINQ查询来联接和过滤F#序列吗?

  15. 15

    我可以使用LINQ查询来计算用属性中的where过滤的总行数吗?

  16. 16

    我们可以使用 django canvas 来运行 2 个组并行任务来执行 celery 任务吗

  17. 17

    我们是否可以使用条件查询来查找记录的一个选择查询的结果

  18. 18

    MySQL:我可以使用一个SELECT ... FOR UPDATE来“保护”多个表吗?(锁定)

  19. 19

    MySQL:我可以使用一个SELECT ... FOR UPDATE来“保护”多个表吗?(锁定)

  20. 20

    是否可以使用较少的冗余来执行此代码?

  21. 21

    我可以使用mysql或psql控制台连接到Tarantool吗?

  22. 22

    是否可以使用OFFSET和乘法来分页查询?

  23. 23

    可以使用自动查询来查找NULL值吗?

  24. 24

    我可以使用一个控制器来更新AngularJS中的两个视图吗?

  25. 25

    我可以使用自由文本单词执行MySQL搜索吗?

  26. 26

    我可以使用makefile来制作具有不同#define的多个可执行文件吗?

  27. 27

    进行常规升级后,请执行Clean Mavericks的安装,我可以使用恢复分区来进行安装吗?

  28. 28

    我可以使用makefile来制作具有不同#define的多个可执行文件吗?

  29. 29

    我可以使用单个 Zephyr 测试用例来维护多个设备上的测试执行记录吗?

热门标签

归档