2012-07-06 51 views
2

請幫助我使用perl在mysql數據庫中插入圖像。如何在MySQL中使用perl插入圖像

這是我的HTML代碼:

<form name="addNewUser" method="get" action="addNewUser.pl" > 
    Email: <input type="text" name="email" value = ""></br> 
    Password: <input type="password" name="pwd" value = ""></br> 
    Name: <input type="text" name="name" ></br> 
    Image:<input name="image" accept="image/jpeg" type="file"> </br> 
    <input type="submit"> 
</form> 

這是我的Perl代碼:

#!/usr/local/bin/perl -w 
#use strict; 
use warnings; 
use DBI; 
use CGI; 
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/; 
use CGI::Session ('-ip_match'); 
use HTML::Template; 

# read the CGI params 
my $cgi = CGI->new; 
my $email = $cgi->param("email"); 
my $pwd = $cgi->param("pwd"); 
my $name = $cgi->param("name"); 
$filename = $cgi->param ("image"); 


require "dbconfig.pl"; 

$rows = $db_handle->do("INSERT INTO users VALUES ('NULL','$name', '$email', '$pwd', '$image') "); 

有什麼不對呢?它不會將文件加載到數據庫中。

請幫幫我。

由於提前,Sapna的

+4

首先,從使用嚴格的行中刪除#並使用my聲明所有變量。其次,不要將數據庫值直接插入字符串(例如,它們可能包含引號)。請參閱http://bobby-tables.com/瞭解佔位符的簡介。第三,你得到哪個錯誤信息? – tinita 2012-07-06 11:36:00

+1

另外,你不應該保存明確的文本密碼。你應該改爲他們。你不會喜歡這樣以可讀的方式保存你的密碼,所以管理員可以看看誰使用最有趣的密碼,你會嗎? – simbabque 2012-07-06 11:49:15

+0

嗨simbabque,我使用密碼加密md5。爲了簡化,我已經將它從SOF的問題中刪除了。你能否請我,我在這裏做什麼錯,所以我無法將圖像存儲在數據庫中。 – 2012-07-06 11:56:53

回答

4

你得到的圖像文件名到一個名爲$filename變量,但在SQL語句中試圖從一個叫做$image變量插入。

您應取消註釋程序中的use strict行並修復它向您顯示的問題。