2013-10-11 57 views
0

为什么我的代码在行$result = mysql_query("SELECT * FROM institutions");上返回500内部服务器错误我做了一件可怕的错误?我所要做的就是计算一个MySQL表中的行数(称为'院校'),然后我刚刚向该表中添加了一行。我怎样才能获得MySQL表中的行数与PHP?

$institution_sql = " 
    INSERT INTO `institutions` 
    (`InstitutionName`, `HeaderPictureID`, `Description`, `DevicesInfo`, `DoingInfo`, `FacebookPage`, `Location`, `TwitterHandle`, `Website`, `CreatedAt`) 
    VALUES 
    (" . nz($_POST['TempInstitutionName']) . ", 74, 'N/A', 'N/A', 'N/A', 'N/A', 'On the Internet', 'N/A', 'N/A', NOW()) 
    "; 

    $mysqli->query($institution_sql); 
    if ($mysqli->errno) { 
     $dbreturn['status'] = "PASSWORD_FAILURE"; 
    } else { 
     $dbreturn['status'] = "EXEC_SUCCESS"; 

     $result = mysql_query("SELECT * FROM institutions"); 
     $rows = mysql_num_rows($result); 
     echo "There are " . $rows . " rows in my table."; 

     $insert_sql = " 
     INSERT INTO `users` 
     (`Handle`, `Email`, `FirstName`, `LastName`, `InstitutionID`, `TempInstitutionName`, `TwitterHandle`, `ProfilePictureID`, `HeaderPictureID`, `AccountType`, `CreatedAt`) 
     VALUES 
     (" . nz($_POST['Handle']) . ", " . nz($_POST['Email']) . ", " . nz($_POST['FirstName']) . ", " . nz($_POST['LastName']) . ", $num_rows, " . nz($_POST['TempInstitutionName']) . ", " . nz($_POST['TwitterHandle']) . ", " . nz('75') . ", " . nz('74') . ", " . nz($_POST['AccountType']) . ",NOW()) 
     "; 

     $mysqli->query($insert_sql); 
     if ($mysqli->errno) { 
      $dbreturn['status'] = "EXEC_FAILURE"; 
     } else { 
     $dbreturn['status'] = "EXEC_SUCCESS"; 

     $insertid = $mysqli->insert_id; 

     $password_sql = " 
     INSERT INTO `passwords` 
     (`UserID`) 
     VALUES 
     ('$insertid') 
     "; 

     $mysqli->query($password_sql); 
     if ($mysqli->errno) { 
      $dbreturn['status'] = "PASSWORD_FAILURE"; 
     } else { 
      $dbreturn['status'] = "EXEC_SUCCESS"; 
     } 

     } //todo: use a transaction here 

    } 
+2

尝试,如果你想要的行数使用'COUNT(*)',而不是*,你真的不想要让你的整个表中的所有数据不知不觉 – InSane

+1

甚至'count(1)',尽管我认为MySQL可能相当聪明,这些天 –

+1

'SELECT COUNT(*)FROM institutions;' – Elen

回答

1

您的问题是,你混合MYSQLIMYSQL

使用重写代码的mysqli

$result = $mysqli->query("SELECT * FROM institutions"); 
    $rows = $result->num_rows ; 
    // and so on ... 

您通过mysqli的,然后连接你在代码中使用mysql。

+1

真的downvote?不是他混合mysqli和mysql?downvoter可以解释为什么? –

+0

+1 echo_Me。OP混合mysqli和mysql。即使它不是原因,它仍然是一个问题。 – euantorano

1

使用

$result = $mysqli->query($institution_sql); 
$result->num_rows; 

或者对于普通旧版本的MySQL

$result = mysql_query($institution_sql); 
mysql_num_rows($result); 
0

...还,这应该是:

VALUES ('”。 nz($ _ POST ['TempInstitutionName'])。 “74”,74

注单引号[除非‘NZ’功能需要照顾那个。