2016-05-24 6 views
0

このSQLをPHPで実行するとエラーが発生しますが、データベース自体で実行すると、エラーなしで動作します(まだ、mysqlにはかなり新しいので、間違って、私は問題を見つけることができません)。PHPでのSQLエラーDB自体ではありません

クエリ($ SQLDatei場合のコードも専用線):

INSERT INTO BankUser (ID, Name, Admin, Password, AccessLevel, LoggedIn, FailedLogin, Banned, IP, Browser, LastLogin, Kommentar) VALUES (NULL, 'Luke', 'Luke', 'supersecretpassword', '3', '0', '0', '0', 'Unbekannt', 'Unbekannt', '2016-01-01 00:00:00', ''); 

エラー:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO BankUser (ID, Name, Admin, Password, AccessLevel, LoggedIn, Faile' at line 1 

PHPコード:

foreach($Datenbankorganisation as $SQLDatei) { 
    $SQL = file_get_contents($SQLDatei); 
    $Result = mysqli_query($DB_LINK, $SQL); 

    if(!$Result) { 
     echo "<p>[".$SQLDatei."] <span style='color: red';>SQL-Fehler</span>: ".mysqli_error($DB_LINK)."</p>"; 
    } else { 
    echo "<p>[".$SQLDatei."] <span style='color: green';>SQL erfolgreich</span>.</p>"; 
    } 
} 
+0

PHPコード – KuKeC

+0

ID auto_incrementの場合、IDとNULLをステートメントから削除しようとする可能性があります。 –

+0

具体的なことは思い出せませんが、データベース、テーブル、カラムの大文字化は問題を引き起こす可能性があります。クエリを使用するPHPコードを提供する場合は、実行する必要のある正確な設定あなたの質問に大文字を許可するために。 – apriede

答えて

1

The Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO BankUser […]

MySQLの通常のショーステートメントの部分はどこからの後にエラーが発生しました。「近くに使用する正しい構文」はです。あなたが見ることができない/しないことを、しかし、MySQLはその上&旅行をする - それはここに始まるから、あなたの完全な声明を示しているので

は、おそらく INSERTキーワードの前に何かあります。

ここからファイルからSQLクエリを読んでいるので、ファイル内容がどの文字エンコーディングに格納されているかを示すバイトオーダーマーク(BOM)が含まれている可能性が最も高いと思われます。おそらくUTFです-8とBOM。したがって、 BOMなしでUTF-8 として保存してください。 (例えば、Notepad ++は使用されている文字エンコーディングを検出し、BOMのない対応するものに簡単に変換できます)

+0

あなたの推測に感謝します!メモ帳でコーディングを変更し、保存してスクリプトを再アップロードしました。 – LuckyLuke

関連する問題