mysql查询无法在此脚本中工作

时间:2013-03-27 15:15:26

标签: php phpmyadmin

$host     = 'localhost';
$user     = 'root';
$password = '';
$database = 'egov';

$conn = mysql_connect($host, $user, $password) or die('Server Information is not Correct');
mysql_select_db($database, $conn) or die('Database Information is not correct');

$sql = "CREATE TABLE IF NOT EXISTS 'upload'(
file_id INT(11) NOT NULL,
fName VARCHAR(255) NOT NULL,
lName VARCHAR(255) NOT NULL,
Mo INT(11) NOT NULL,
dese VARCHAR(255) NOT NULL,
Email VARCHAR(255) NOT NULL,
file_name VARCHAR(255) NOT NULL,
PRIMARY KEY(file_id))ENGINE = MYISAM";

if (isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) {
    $fileName = $_FILES['userfile']['name'];
    $tmpName  = $_FILES['userfile']['tmp_name'];
    $fileSize = $_FILES['userfile']['size'];
    $fileType = $_FILES['userfile']['type'];

    $fp      = fopen($tmpName, 'r');
    $content = fread($fp, filesize($tmpName));
    $content = addslashes($content);
    fclose($fp);

    if (!get_magic_quotes_gpc()) {
        $fileName = addslashes($fileName);
    }

    $da = date("dmy");
    echo $da;

    $fname = $_REQUEST['lastname'];
    $lname = $_REQUEST['firstname'];
    $pno   = $_REQUEST['mbo'];
    $email = $_REQUEST['email'];
    $query = $_REQUEST['description'];

    $sql = "INSERT INTO upload (
                    fName,
                    lName,
                    Mo,
                    dese,
                    Email                   
                )
                VALUES (
                    '$fname',
                    '$lname',
                    '$pno',
                    '$email',
                    '$query ',
                    'file_name',
                    NOW()
                )";
}

$query = "SELECT * FROM upload";
    $result = mysql_query($query);

    echo "<table>";
    echo "<tr>";

    while( ($row = mysql_fetch_array($result)))
{
    echo "<tr>";
    echo "<td>".$row['fName']."</td>";
    echo "<td>".$row['lName']."</td>";
    echo "<td>".$row['Mo']."</td>";
    echo "<td>".$row['dese']."</td>";

    echo "<td>".$row['Email']."</td>";
    echo "</tr>";
}

    echo "</tr>";
    echo "</table>";

数据没有插入表格,我已经问了但是没有回复。不要投票,因为它会破坏我的账户。

我的HTML代码是:

<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile"> 

4 个答案:

答案 0 :(得分:1)

问题在于你的INSERT语句(你永远不会执行)。

$sql = "INSERT INTO upload (
                fName,
                lName,
                Mo,
                dese,
                Email                   
            )
            VALUES (
                '$fname',
                '$lname',
                '$pno',
                '$email',
                '$query ',
                'file_name',
                NOW()
            )";

您的列列表有5列,而您发送的是7.

如评论中所述,您应该停止使用mysql_函数并使用预准备语句。

答案 1 :(得分:0)

您的插入声明无法正常工作(即使您已执行),因为您没有添加设置为file_id的{​​{1}}并且是您的主要密钥,并且如上所述传递的值多于提到的字段。所以我首先将创建表更改为:

NOT NULL

如果您不想明确命名$sql = "CREATE TABLE IF NOT EXISTS 'upload'(file_id INT(11) NOT NULL AUTO_INCREMENT,... ,然后再去查看更多教程,那么网上有很多这些教程。仔细阅读它们。

答案 2 :(得分:0)

您的代码中存在以下错误:

1 - 从Create table query中删除单引号,即

改变
$sql = "CREATE TABLE IF NOT EXISTS  'upload'(file_id INT(11) NOT NULL,fName VARCHAR(255)    
NOT NULL,lName VARCHAR(255) NOT NULL,Mo INT(11) NOT NULL,dese VARCHAR(255) NOT 
NULL,Email VARCHAR(255) NOT NULL,file_name VARCHAR(255) NOT NULL,PRIMARY 
KEY(file_id))ENGINE = MYISAM";

$sql = "CREATE TABLE IF NOT EXISTS  upload (file_id INT(11) NOT NULL,fName VARCHAR(255)    
NOT NULL,lName VARCHAR(255) NOT NULL,Mo INT(11) NOT NULL,dese VARCHAR(255) NOT 
NULL,Email VARCHAR(255) NOT NULL,file_name VARCHAR(255) NOT NULL,PRIMARY 
KEY(file_id))ENGINE = MYISAM";

2 - 您的插入查询错误。

值的数量多于参数的数量,即

$ sql =“INSERT INTO上传(                     FNAME,                     L-NAME,                     莫,                     DESE,                     电子邮件
                )                 价值观(                     '$ FNAME',                     '$ L-NAME',                     '$ PNO',                     '$电子邮件',                     '$ query',                     '文件名',                     现在()                 )“; 对于5列,您将提供7列。更改查询,

  INSERT INTO upload (
                fName,
                lName,
                Mo,
                dese,
                Email                   
            ) ....

INSERT INTO upload (
                fName,
                lName,
                Mo,
                dese,
                Email,
               NAME_OF_YOUR_QUERY_COLUMN,
               NAME_OF_YOUR_file_name_COLUMN,
               NAME_OF_YOUR_CURRENT_DATE_COLUMN
            ) ....

答案 3 :(得分:0)

首先,您没有使用mysql_query($sql)执行查询 和

其次,您对列的计数以及您要为插入发送的值不相同... 这将生成mysql错误