PHP:在while循环期间更改查询变量

PHP:在while循环期间更改查询变量,php,mysql,variables,loops,while-loop,Php,Mysql,Variables,Loops,While Loop,我希望在while循环中更改查询的一个变量,可以这样做吗?例如 $query = mysql_query('SELECT column1, column2 FROM table1 WHERE column1 = "'.$variable.'";', $conn); while ($data = mysql_fetch_assoc($query)) { if($data['column2'] == 'original') { $variable = 'altered';

我希望在while循环中更改查询的一个变量,可以这样做吗?例如

$query = mysql_query('SELECT column1, column2 FROM table1 WHERE column1 = "'.$variable.'";', $conn);
while ($data = mysql_fetch_assoc($query)) {
    if($data['column2'] == 'original') {
        $variable = 'altered';
    }
}
我只是想在执行while语句之前看看这是否可行,或者$data数组是否已经完全生成


感谢

查询已经执行,即使有效,更改变量也不会有任何区别。当使用
mysql\u query
执行查询时,它返回的数据就是这样,无论您对查询中使用的变量做了多少更改,它都不会更改


我也不明白你为什么要做这样的事情,你的目的是什么,如果你能详细说明一下,也许我们可以找到一个更好的解决方案。

我相信你想做的是通过改变变量来改变你正在运行的查询


当您更改变量时,您已经执行了查询,并且正如您所说,$数据已经“完全生成”。

当您使用mysql\u query()时,已经执行了查询,mysql\u fetch\u assoc()只解释返回的数据。所以没有

从理论上讲,你可以做以下几点:

$query = mysql_query('SELECT column1, column2 FROM table1 WHERE column1 = "'. $variable.'";', $conn);
while ($data = mysql_fetch_assoc($query)) {
    if($data['column2'] == 'original') {
        $variable = 'altered';
        // Run the query with the new $variable value.
        $query = mysql_query('SELECT column1, column2 FROM table1 WHERE column1 = "'. $variable.'";', $conn);
    }
}

如果每次都重新运行查询,但这可能不是您真正想要执行的操作,它可能会陷入循环。

否。查询已执行,返回数组已生成。但我认为这段代码可能会让您感兴趣(非常安全、高效的查询方法):

//创建PDO对象的实例以连接到数据库。 $db=newpdo($mysql:unix_socket=/tmp/mysql.sock',$user,$password)

//使用将查询加载到对象中?作为占位符。 $q=$db->prepare(“从表1中选择column1,column2,其中column1=?”

//为数组中的占位符指定一个值并执行一次。 $q->execute(数组('foo'))

而($row=$q->fetch()) { 如果($row['column2']=='original') {$v=“已更改”;$q->执行(数组($v));中断;} //使用新值执行新查询。 }