【发布时间】:2011-10-29 09:03:28
【问题描述】:
在我的 PHP 文件中,我使用这一行从我的 mySQL 数据库中提取数据:
$query = "SET @rank=0; SELECT @rank:=@rank +1 as rank, Blah Blah...";
如果我在 phpMyAdmin 的 SQL 窗口中检查 SELECT 语句(没有 $query= ),它工作正常。
但是,如果我在 PHP 中使用它,则会出现错误。它不喜欢“SET @rank=0;”少量。有没有办法使用“SET @rank=0;”当它在 "$query=" ?有解决办法吗?
其余代码是从数据库中提取数据的标准代码:
public function getmyData() {
$mysql = mysql_connect(connection stuff);
$query = "SELECT @rank:=@rank +1 as rank, formatted_school_name, blah blah";
$result = mysql_query($query);
$ret = array();
while ($row = mysql_fetch_object($result)) {
$tmp = new VOmyData1();
$tmp->stuff1 = $row-> stuff1;
$tmp->stuff2 = $row->stuff2;
$ret[] = $tmp;
}
mysql_free_result($result);
return $ret;
}
更新:我正在尝试使用 Amerb 关于使用多查询的建议。我像这样连接查询:
$query = "SET @rank = 0";
$query .= "SELECT @rank:=@rank +1 as rank...
我将结果改为:
$result = $mysqli_multi_query($query);
但是,由于某种原因,它失败了。我在一台运行 PHP 5.2 的机器上。有什么建议?
【问题讨论】:
-
您使用什么代码来运行“查询”?这实际上是两个查询(注意
SELECT之前的分号),并且至少一些 PHP MySQL 绑定不期望在同一个调用中出现多个查询。 -
@Amber,您好 Amber,感谢您的留言。我添加了更多代码。这是从数据库中提取数据的常用代码。我明白你关于“;”的观点。有没有办法解决这个问题?谢谢。
-
您好 Amber,感谢您提供链接。我正在尝试使用多查询,但由于某种原因它不起作用。我做错了什么。我发布了更多代码。如果你有什么建议,我很想听听。谢谢!
-
当您说“由于某种原因失败”时,请详细说明 - 失败的原因、您看到的错误消息或行为等。