一个代码中的变量相同,mysql_query会正常工作吗?

时间:2011-11-02 16:39:15

标签: php mysql

我想知道我是否可以在同一个代码上使用同名的2个变量,它仍然可以工作,或者我需要为每个查询提供一个差异名称? (我知道这是一个非常简单的问题);)

以下是一个例子:

$sql="DELETE FROM apps WHERE app_id='".$app_id."'";
mysql_query($sql) or die(mysql_error());

$sql="DELETE FROM statistics_apps WHERE app_id='".$app_id."'";
mysql_query($sql) or die(mysql_error());

我是否需要将第二个$sql更改为$sql2

谢谢!

5 个答案:

答案 0 :(得分:2)

  

我是否需要将第二个$ sql更改为$ sql2?

没有。只要你确保在$ sql(version2)之前执行$ sql(version1)
没有必要。

另一方面 if

$sql="SELECT * FROM apps WHERE app_id='".$app_id."'";
$result = mysql_query($sql) or die(mysql_error());

$sql="SELECT *  FROM statistics_apps WHERE app_id='".$app_id."'";
$result2 = mysql_query($sql) or die(mysql_error());

如果您在使用query2开始之前未从query1 获取所有行,则必须保护不同变量中的$result查询句柄。

答案 1 :(得分:1)

只要在重新填充$ sql-variable之前调用第一个mysql_query($sql),就没问题了。你只需使用一个你只给出另一个值的变量:)

答案 2 :(得分:1)

您无需更改$sql变量。您需要的是保留mysql_query的返回值。

$sql="DELETE FROM apps WHERE app_id='".$app_id."'";
$query1 = mysql_query($sql) or die(mysql_error());

$sql="DELETE FROM statistics_apps WHERE app_id='".$app_id."'";
$query2 = mysql_query($sql) or die(mysql_error());

var_dump(mysql_affected_rows($query1)); // deleted in apps
var_dump(mysql_affected_rows($query2)); // deleted in statistics_apps

答案 3 :(得分:1)

不,您不需要为每个查询都有一个单独的变量,除非您需要/想要在代码的某个稍后的位置引用原始查询。

答案 4 :(得分:1)

不,你不......因为最后它写的是:

mysql_query("DELETE FROM apps WHERE app_id='".$app_id."'") or die(mysql_error());
mysql_query("DELETE FROM statistics_apps WHERE app_id='".$app_id."'") or die(mysql_error());

您的变量$sql的值已更改