2012-02-23 47 views
0

我知道這是不是一個好主意,圖像存儲在MySQL數據庫,但我只是想嘗試它。語法mysql/php錯誤圖像

在MySQL中我創建了這個表:

CREATE TABLE tbl_images (
     id tinyint(3) unsigned NOT NULL auto_increment, 
     image mediumblob NOT NULL, 
     PRIMARY KEY (id) 
    ); 

這裏是PHP代碼:

if(isset($_FILES['image']) && $_FILES['image']['size'] > 0) { 
$tmpName = $_FILES['image']['tmp_name']; 

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

     $query ="INSERT INTO tbl_images(image)VALUES('".$data."')"; 
     $results=mysql_query($query) or die(mysql_error()); 
     $num=mysql_num_rows($results); 
     if($num>0) 
      print "Thank you, your file has been uploaded."; 
} 
else { 
    print "No image selected/uploaded"; 
} 
?> 

我有錯誤的MySQL這裏的語法時纔是輸出:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...\insertimg.php on line 21 

<html> 
<title>Image</title> 
<!--mikhaim ie form me3 upload ghabli benevisim--> 
<!-- inbar mikhaim 2 database image ra gharar dahim--> 
<form enctype="multipart/form-data" action="insertimg.php" method="post" name="changer"> 
    <input name="MAX_FILE_SIZE" value="102400" type="hidden"> 
    <input name="image" id="image" accept="image/jpeg" type="file"> 
    <input value="Submit" type="submit"> 
    </form> 
    </html> 

回答

1

您否則支架沒有關閉.....

+0

我不知道如何!但問題解決了我在html表單中使用頭,但我認爲別的東西是一個問題,我不知道它 – Nickool 2012-02-23 11:26:06

+0

(Y)。我認爲你的數據變量是空的... – Shaun 2012-02-23 11:27:28

+0

這是你告訴它的原因嗎? – Nickool 2012-02-23 11:30:43

0

在INSERT查詢中檢查num_rows沒有意義。如果您想在發生錯誤時進行打印,請執行:mysql_query(...) or die(mysql_error())

編輯:我真的不明白爲什麼你的INSERT查詢將永遠失敗,所以你可以刪除所有錯誤檢查,並在查詢後只打印「謝謝」。

編輯:下面是它應該是什麼樣子:

<?php 
if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) { 
    $tmpName = $_FILES['image']['tmp_name']; 
    $fp = fopen($tmpName, 'r'); 
    $data = fread($fp, filesize($tmpName)); 
    $data = addslashes($data); 
    fclose($fp); 

    $query = "INSERT INTO tbl_images (image) VALUES ('$data')"; 
    mysql_query($query) or die(mysql_error()); 
    print "Thank you, your file has been uploaded."; 
else { 
    print "No image selected/uploaded"; 
} 
+0

你可以顯示新的(編輯的)代碼嗎? – Shaun 2012-02-23 11:09:00

+0

在那裏我編輯 – Nickool 2012-02-23 11:09:20

+0

對不起,我忘了我正在編輯的支架 – Nickool 2012-02-23 11:13:09

0

確保記錄插入,如果插入精細那麼你可以使用

$num = msql_affected_rows(); 

$num = mysql_insert_id(); 

而不是$num=mysql_num_rows($results);