无法从数据库中选择记录

时间:2010-08-31 21:49:01

标签: php sql database forms

我正在学习PHP和SQL,我正在试图弄清楚如何从数据库中选择一条记录。 我创建了一个名为selectById()

的函数

现在显示的浏览器中显示“错误:”,但未显示任何特定错误。

 // function selectById --------------------------------------------------------------------
    function selectById($pUInput) {
        $sql = mysql_query("SELECT * FROM tblStudents 
                            WHERE id='$pUInput[0]'");

            if (!mysql_query($sql))
              {
              die('Error: ' . mysql_error());
              }
            echo "Record Selected";

    }

PHP代码:

//Call function mainline

mainline();

// Declare the function mainline
function mainline() {

    $uInput = getUserInput();

    $connectDb = openConnect(); // Open Database Connection
    selectDb($connectDb); // Select Database
    doAction($uInput);
    //display();
    //closeConnect();

}

//Declare function getUserInput --------------------------------------------------------
function getUserInput() {

    echo "In the function getUserInput()" . "<br/>";

    // Variables of User Input
    $idnum = $_POST["idnum"];              // id (NOTE: auto increments in database)
    $fname = $_POST["fname"];             // first name
    $lname = $_POST["lname"];            // last name
    $major = $_POST["major"];           // major
    $year = $_POST["year"];            // year
    $action = $_POST["action"];       // action (select, insert, update, delete)

    $userInput = array($idnum, $fname, $lname, $major, $year, $action);

    return $userInput;
}

function doAction($pUserInput) {
    echo "In function doAction()" . "<br/>";

    if ($pUserInput[5] == "sel") {
        selectById($pUserInput);    

    } elseif ($pUserInput[5] == "ins") {
        insert($pUserInput);    
    }

}

// Create a database connection --------------------------------------------------------
function openConnect() {
    $connection = mysql_connect("localhost", "root_user", "password");
        echo "Opened Connection!" . "<br/>";

    if(!$connection) {
        die("Database connection failed: " . mysql_error());
    }

    return $connection;
}

// Select a database to ---------------------------------------------------------------- 
function selectDb($pConnectDb) {
    $dbSelect = mysql_select_db("School", $pConnectDb);
    if(!$dbSelect) {
        die("Database selection failed: " . mysql_error());
    } else {
    echo "You are in the School database! <br/>";   
    }

}

// function select ---------------------------------------------------------------------
function selectById($pUInput) {
    $sql = mysql_query("SELECT * FROM tblStudents 
                        WHERE id='$pUInput[0]'");

        if (!mysql_query($sql))
          {
          die('Error: ' . mysql_error());
          }
        echo "Record Selected";

}

// function insert -----------------------------------------------------------------------------
function insert($pUInput) {

    $sql="INSERT INTO tblStudents (first_name, last_name, major, year)
          VALUES
         ('$pUInput[1]','$pUInput[2]','$pUInput[3]', '$pUInput[4]')";


        if (!mysql_query($sql))
          {
          die('Error: ' . mysql_error());
          }
        echo "1 record added";
}



?> 

SQL语法:

CREATE TABLE `tblStudents` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(30) NOT NULL,
  `last_name` varchar(50) NOT NULL,
  `major` varchar(40) NOT NULL,
  `year` date NOT NULL,
  PRIMARY KEY (`id`)
)

1 个答案:

答案 0 :(得分:2)

您正在对查询结果运行查询。这不行。你将需要使用

的内容
$sql = mysql_query("SELECT * FROM tblStudents 
                        WHERE id='" . $pUInput[0] . "'");

if (!$row = mysql_fetch_assoc($sql))

如果查询没有失败,那将为$ row赋一个数组值。您可能还希望使用mysql_real_escape_string过滤pUinput,因为您不一定知道它包含的内容(或静态地将其转换为整数)。

修改

添加了一些额外信息。