【发布时间】:2014-09-03 12:31:05
【问题描述】:
我有几个用于不同目的的 php 函数。他们每个人都在执行一个指定的 mysqli 查询,但只有第一个查询返回结果。
这是我的代码
function setAsNonWorkingProxy(){
GLOBAL $mysqli, $proxy;
$port = explode(":",$proxy)[1];
$proxy = explode(":",$proxy)[0];
if ($sql2 = $mysqli->prepare("UPDATE proxies SET failed=failed+1 WHERE ip=? AND port=?")) {
$sql2->bind_param("si",$proxy, $port);
$sql2->execute();
$sql2->close();
}
}
function markProxyAsUsed(){
GLOBAL $mysqli, $proxy;
$port = explode(":",$proxy)[1];
$proxy = explode(":",$proxy)[0];
if ($sql3 = $mysqli->prepare("UPDATE proxies SET tried=tried+1 WHERE ip=? AND port=?")) {
$sql3->bind_param("si",$proxy, $port);
$sql3->execute();
$sql3->close();
}
}
setAsNonWorkingProxy();
markProxyAsUsed();
当我这样做时,只有第一个被调用的函数会在里面执行查询。 调用第二个函数并执行查询,没有任何错误,但没有任何反应。我在这两个函数中都使用了 UDPDATE 查询。
如果我改变函数的顺序:
markProxyAsUsed();
setAsNonWorkingProxy();
同样,只有第一个有效。为什么会这样?
【问题讨论】:
-
只有函数定义没有声明怎么可能回答呢?
-
不知道你在函数中做了什么,我们无法回答这个问题。
-
我添加了这两个函数 ;)
-
不要使用
global关键字。将这些变量作为函数的参数传递。 -
@JohnConde,我试试,还没试过。