u014666034
yatmingtsai
2015-06-09 14:55
采纳率: 77.8%
浏览 2.3k
已采纳

每次查询都得连接一次数据库,否则不继续执行的问题。


//连接数据库
$pdo = new PDO("mysql:host=$db_host; dbname=$db_name", $db_username, $db_password); 
$pdo->query('SET NAMES utf8');
//导入活动信息
$sql = "SELECT * FROM activity WHERE a_id = '$activity_id'";
$rs = $pdo->query($sql);
while($row = $rs->fetch()){
    $activity_uno=$row['u_no'];
    $activity_name=$row['a_name'];
}
//导入用户信息
$sql = "SELECT * FROM user WHERE No = '$activity_uno'";
$rs = $pdo->query($sql);
while($row = $rs->fetch()){
    $activity_usernick=$row['Nickname'];
    $activity_uservtype=$row['vtype'];
    $activity_userverify=$row['verify'];
}

在本机上(WAMP环境)这样写的代码,运行结果是正常的,一次连接就可以多次查询。但是传到服务器上(LAMP),每次查询前都要连接一次数据库,否则就不会继续查询。
在服务器上改成这样才能正常:

 //连接数据库
$pdo = new PDO("mysql:host=$db_host; dbname=$db_name", $db_username, $db_password); 
$pdo->query('SET NAMES utf8');
//导入活动信息
$sql = "SELECT * FROM activity WHERE a_id = '$activity_id'";
$rs = $pdo->query($sql);
while($row = $rs->fetch()){
    $activity_uno=$row['u_no'];
    $activity_name=$row['a_name'];
}
//连接数据库
$pdo = new PDO("mysql:host=$db_host; dbname=$db_name", $db_username, $db_password); 
$pdo->query('SET NAMES utf8');
//导入用户信息
$sql = "SELECT * FROM user WHERE No = '$activity_uno'";
$rs = $pdo->query($sql);
while($row = $rs->fetch()){
    $activity_usernick=$row['Nickname'];
    $activity_uservtype=$row['vtype'];
    $activity_userverify=$row['verify'];
}

请问问题出在哪里?如何才能像本机上测试那样一次连接多次查询?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • frank_20080215
    frank_20080215 2015-06-09 15:01
    已采纳

    服务器(LAMP)建立一个连接池

    点赞 评论
  • devmiao
    devmiao 2015-06-09 15:17

    修改apache的进程池的存活时间看看

    点赞 评论
  • u012377333
    一枪尽骚丶魂 2015-06-10 11:20

    看看是不是有设置不一样的地方

    点赞 评论
  • Bruce_why
    一路向北-bruce 2015-06-10 14:38

    PDO提供了两个获得程序中的错误信息的方法,一个是errorCode()方法;另一个是errorInfo()方法,打印错误信息吧

    点赞 评论
  • lxmsupper
    leesumen 2015-06-12 06:14

    服务器(LAMP)建立一个连接池,修改apache的进程池的存活时间看看

    点赞 评论

相关推荐