0

我从学校接到了这个任务,我对如何做到这一点感到困惑和迷茫。所以基本上我必须为数据库创建 2 个表,但我必须从 php 创建。

我创建了第一个表,但由于某种原因没有创建第二个。然后,我必须分别用 10 和 20 条样本记录填充第一个和第二个表,填充,这是否意味着添加更多的假用户?如果是这样,它像下面显示的代码吗?

*我在填充的第二部分也有错误

十分感谢你的帮助。

<?php
        $host = "host";
        $user = "me";
        $pswd = "password";
        $dbnm = "db";

        $conn = @mysqli_connect($host, $user, $pswd, $dbnm);
        if (!$conn)
            die ("<p>Couldn't connect to the server!<p>");

        $selectData = @mysqli_select_db ($conn, $dbnm);
        if(!$selectData)
        {
            die ("<p>Database Not Selected</p>");
        }

        //1st table
            $sql =  "CREATE TABLE IF NOT EXISTS  `friends`  
          (  
          `friend_id` INT NOT NULL auto_increment,   
          `friend_email` VARCHAR(20) NOT NULL,  
          `password` VARCHAR(20) NOT NULL,  
          `profile_name` VARCHAR(30) NOT NULL,  
          `date_started` DATE NOT NULL,  
          `num_of_friends` INT unsigned,  
          PRIMARY KEY (`friend_id`)  
          )";

        //2nd table
          $sqlMyfriends = "CREATE TABLE `myfriends`
          (  
          `friend_id1` INT NOT NULL,   
          `friend_id2` INT NOT NULL,
          )";


        $query_result1 = @mysqli_query($conn, $sql);
        $query_result2 = @mysqli_query($conn, $sqlMyfriends);

        //populating 1st table
        $sqlSt3="INSERT INTO friends (friend_id, friend_email, password, profile_name, date_started, num_of_friends) 
                VALUES('NULL','email@email.com','123','abc','2012-10-25', 5)";
        $queryResult3 = @mysqli_query($dbConnect,$sqlSt3)


        //populating 2nd table
        $sqlSt13="INSERT INTO myfriends VALUES(1,2)";
        $queryResult13=@mysqli_query($dbConnect,$sqlSt13);


        mysqli_close($conn);

    ?>
4

4 回答 4

0

您在这里有一个额外的逗号,可能会导致错误:

friend_id2INT 非空,

于 2012-10-29T16:39:47.390 回答
0

应该:

  $sqlMyfriends = "CREATE TABLE `myfriends` (  
  `friend_id1` INT NOT NULL,   
  `friend_id2` INT NOT NULL
  )";

我希望我现在可以在学校:)

于 2012-10-29T16:40:31.720 回答
0

其他人已经解决了您的一个问题,因此这与无法向您的表中添加值(填充)有关。您的连接链接是$conn-

$conn = @mysqli_connect($host, $user, $pswd, $dbnm);
ie.
   $query_result1 = @mysqli_query($conn, $sql);

但是当您将值添加到表中时,您将连接链接更改为$dbConnect

...
$queryResult3 = @mysqli_query($dbConnect,$sqlSt3)
...
$queryResult13=@mysqli_query($dbConnect,$sqlSt13);

要将多个值插入表中,您可以添加逗号和附加括号,()-

    //populating 2nd table
    $sqlSt13="INSERT INTO myfriends VALUES(1,2),(2,3),(3,1)";
    $queryResult13=@mysqli_query($conn,$sqlSt13); 

或者您可以使用mysqli_multi_query, 并列出每个 -

    //populating 2nd table
    $sqlSt13  ="INSERT INTO myfriends VALUES (1,2);";
    $sqlSt13 .="INSERT INTO myfriends VALUES (2,3);";
    $sqlSt13 .="INSERT INTO myfriends VALUES (3,1);";
    $queryResult13=@mysqli_query($conn,$sqlSt13);

请参阅手册mysqli_multi_query- php.net/manual/en/mysqli.multi-query.php

于 2012-10-29T16:58:29.380 回答
0

您在代码中有以下错误: 1) $queryResult3 = @mysqli_query($dbConnect,$sqlSt3) 是正确的: $queryResult3 = @mysqli_query($dbConnect,$sqlSt3); 2) $sqlMyfriends = "创建表myfriends (
friend_id1INT NOT NULL,
friend_id2INT NOT NULL, )"; 正确: $sqlMyfriends = "CREATE TABLE myfriends (
friend_id1INT NOT NULL,
friend_id2INT NOT NULL)"; 3) $queryResult3 = @mysqli_query($conn,$sqlSt3); 是正确的: $queryResult3 = mysqli_query($conn,$sqlSt3);

正确的代码是:

无法连接到服务器!

"); $selectData = @mysqli_select_db ($conn, $dbnm); if(!$selectData) { 死 ("

未选择数据库

mysqli_close($conn); ?> mysqli_close($conn); ?>

我希望有所帮助!

于 2012-10-29T19:35:18.940 回答