2014-10-28 35 views
-2

我在mysql中插入一個URL。網址有?。所以,當使用Perl插入它會給出錯誤,如下所示。插入時出錯?作爲使用Perl的mysql的值

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax 

查詢:

insert into TEST_DB values (1, 'http://website.com/hfsda/xxx-xxx-xx/?xxxx=cccd'); 

我試圖逃避?\?還可以,但沒有奏效。

有什麼想法?

+0

嘗試刪除尾部的';'。 – Mat 2014-10-28 11:36:44

+0

http://www.perlmonks.org/?node_id=7548 – 2014-10-28 11:47:56

+1

插入您的Perl代碼 – 2014-10-28 11:48:03

回答

1

我不相信你說的是真的。我相信你實際上要求執行一個不同的查詢。找出你實際執行的是什麼。


經過測試。

use strict; 
use warnings; 

use DBI qw(); 

my $host = 'localhost'; 
my $db  = '...'; 
my $user = '...'; 
my $passwd = '...'; 

my $dbh = DBI->connect(
    "dbi:mysql:host=$host;database=$db", 
    $user, $passwd, 
    { PrintError => 0, RaiseError => 1 }, 
); 

$dbh->do(q{ 
    CREATE TEMPORARY TABLE TempTable (
      id INT, 
      url VARCHAR(255) 
     ) 
}); 

$dbh->do(q{ 
    INSERT INTO TempTable VALUES 
      (1, 'http://website.com/hfsda/xxx-xxx-xx/?xxxx=cccd') 
}); 

print("ok\n"); 
+0

我問到的問題不是問題。實際上,單引號是在前面的文字之間出現的,並且在附近顯示錯誤「?」。所以謝謝你的幫助。 – spn 2014-10-30 07:38:11