2013-03-27 101 views
-1
$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>"; 

數據沒有插入到表中,我已經問過它但沒有回覆。不要投下因爲它會毀了我的帳戶。mysql查詢不能在這個腳本中工作

我的HTML代碼是:

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

「不工作」是什麼意思?你得到什麼錯誤? – j08691 2013-03-27 15:17:53

+1

[請不要在新代碼中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[紅框](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-03-27 15:17:57

+0

這真的是你所有的'html'嗎? – chriz 2013-03-27 15:18:06

回答

0

,可以有以下代碼中的錯誤:

1 - 取下創建表查詢即

變化從

$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, LNAME, 莫, DESE, 電子郵件
) VALUES( 「$數量多FNAME」, '$ L-NAME', '$ PNO', '$電子郵件', '$查詢', 'FILE_NAME', NOW() )「; 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 
      ) .... 
+0

對不起NAME_OF_YOUR_CURRENT_DATE_COLUMN我在哪裏可以得到 – mukhesh 2013-03-27 15:44:43

+0

這是您的「上傳」表中的列名。你使用MS Excel嗎?它的列名稱!你需要花一些時間來掌握SQL的基礎知識。 – Saad 2013-04-06 11:24:18

1

問題是與您的INSERT語句(你永遠執行)。

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

你列的列表中有5列,你發送7

正如在評論中提到,應停止使用mysql_功能和使用準備好的語句。

+0

請你給我這個代碼的準備語句PLZ .... 。 – mukhesh 2013-03-27 15:24:07

+0

@mukhesh Ahh no。請[請閱讀文檔](http://php.net/manual/en/mysqli-stmt.bind-param.php) – Kermit 2013-03-27 15:26:39

0

您的插入語句不起作用(即使您執行了它),因爲您不添加設置爲NOT NULLfile_id,它是您的主鍵,並且如上所述,您傳遞的值超過所提及的字段。所以我想與改變創建表來此開始:

$sql = "CREATE TABLE IF NOT EXISTS 'upload'(file_id INT(11) NOT NULL AUTO_INCREMENT,... 

如果你不想明確命名file_id,然後去看看一些更多的教程,有很多人在網絡上。仔細閱讀。

0

首先,你不執行你的查詢使用mysql_query($sql)

其次你對你的列數和值,您是插入發送的不一樣 ... 這將生成mysql錯誤

相關問題