2011-07-16 8 views
1

私は現在、独自のCMSシステムからJoomla 1.6データベースにデータベースを移行するためのスクリプトを作成しようとしています。
私のコードは最後の "die"でエラーを投げています。 (私は道に沿って自分自身にPHPを教えてきました申し訳ありませんが、私はすべてのための適切な用語を使用しないでください知っている)独自のCMSデータベースをJoomlaデータベースに移行する

<?php 
$username="root"; 
$password=""; 
$database="DATABASE"; 

mysql_connect(localhost,$username,$password); 
@mysql_select_db($database) or die("Unable to select database"); 
$query="SELECT * FROM post3"; 
$result=mysql_query($query); 

$num=mysql_num_rows($result); 

mysql_close(); 

$i=0; 
while ($i < $num) { 

$postid=mysql_result($result,$i,"postid"); 
echo "$postid <br/>"; 

$poster=mysql_result($result,$i,"poster"); 
echo "$poster <br/>"; 

$department=mysql_result($result,$i,"department"); 

if($department=="LIFE"){ 
$department="12";} 
elseif ($department=="NEWS"){ 
    $department="11";} 
    elseif ($department=="SPORTS"){ 
     $department="13";} 
     echo "$department <br/>"; 

$milestone=mysql_result($result,$i,"milestone"); 
echo "$milestone <br/>"; 

$date= date('Y-m-d H:i:s', $milestone); 
echo "$date <br/>"; 

$title=mysql_result($result,$i,"title"); 
echo "$title <br/>"; 

$preview=mysql_result($result,$i,"preview"); 
if (empty($preview)) { 
    $preview=$title; 
} 
echo "$preview<br/>"; 

$alias=str_replace(" ","-", $title); 
echo "$alias <br/>"; 

$bodytext=mysql_result($result,$i,"body_text"); 
echo "$bodytext <br/>"; 

$edited=mysql_result($result,$i,"edited"); 
echo "$edited <br/>"; 

$pop=mysql_result($result,$i,"pop"); 
echo "$pop <br/>"; 

echo "$i Records Copied<br/>"; 


$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("DATABASE", $con); 

$sql="INSERT INTO conversion (id, title, alias, introtext, fulltext, state, sectionid, mask, catid, created, created_by, modified, modified_by, checked_out, checked_out_time, publish_up, publish_down, version, parentid, ordering, access, hits, featured, language) 
VALUES 
('$postid','$title','$alias','$preview','$bodytext','1','0','0','$department','$date','$poster','$date','$poster','0','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','$edited','0','$i','1','$pop','0','*')"; 

if (!mysql_query($sql,$con)) 
    { 
    die ("Query failed: " . mysql_error() . " Actual query: " . $sql); 

    } 
echo "Success <br/>"; 

mysql_close($con); 

$i++; 
} 

?> 

それは素晴らしいすべてをエコー表示が、このエラーがスローされます。 クエリに失敗しました:あなたをあなたのSQL構文に誤りがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい文法が 'fulltext、state、sectionid、mask、catid、created、created_by、modified、modified'の近くで使用されていることを確認してください。

アイデア?ありがとうございました!

答えて

1

fulltextは、MySQLの予約語です。列名として使用する場合は、次のようにバックスティックを使用する必要があります。

`fulltext` 
+0

あなたは私のヒーローです。 addslashesとmysql_real_escape_stringが必要な場所を覚えていれば、完全に動作します。 – Dennis

+0

私はあなたに投票しようとしましたが、これは私の初めての投稿、申し訳ありません。 – Dennis

1

"fulltext"はMySQL reserved wordですので、バッククォート(例:`fulltext`)で囲むか、フィールドに別の名前を使用してください。

関連する問題