2014-12-04 36 views
0

工作,为什么下面的代码不工作Mysql的行号功能不能与PDO PHP

$db = new PDO(...); //init the PDO 

$query = $db->query(" 
      Set @ids := 0; 
      SELECT username, @ids := @ids + 1 as id FROM user 
      "); 

$query->execute(); 

如果我没有使用mysql行数函数的IT工作找到。那么这是否意味着我不能使用MySQL的MySQL行号功能?

+0

您正在使用多个查询。请参阅http://stackoverflow.com/questions/6346674/pdo-support-for-multiple-queries-pdo-mysql-pdo-mysqlnd – Clarkey 2014-12-04 08:32:15

+0

我可以修复它的可能性吗? @Clarkey – user3651999 2014-12-04 08:34:33

回答

1

PDO不允许在单个调用中进行多个查询。您可以通过多次拨打$db->query()来实现:首先执行SET查询,然后执行SELECT

然而,不是多条语句,你可以用一个JOIN做这一切在一个单一的查询:

SELECT username, @ids := @ids + 1 AS id 
FROM user 
JOIN (SELECT @ids := 0) AS var 
+0

谢谢你!!!!!这是我想要的。MYSQL让我很困惑 – user3651999 2014-12-04 08:44:04