2016-08-19 22 views
1

クエリからテーブルを削除して再作成するファイルを作成しようとしています。 構文エラーが発生しています。私はmysqlで作業していたので、しばらくしてエラーを見ていません。目の別のセットは素晴らしいだろう!phpとmysqlを使用してクエリからテーブルを作成する方法

$dbc = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die ('Could not connect to MySQL: ' . mysqli_connect_error()); 

//drop table for updated database 
//Create query 
$q = " 
DROP TABLE IF EXISTS dbName.tbName; 
CREATE TABLE dbName.tbName (ID int) AS 'SELECT 
dbName.tbName.ID 
FROM 
dbName.tbName 
ORDER BY 
dbName.tbName.count DESC 
LIMIT 8'"; 
; 

//run query 
$r = @mysqli_query ($dbc, $q); 


//Displays resutls if query ran correctly 
if ($r) { // If it ran OK, display the records. 

     // Table header. 
     echo '<table align="center" > 
     <tr><td align="left"><b>Number 1</b></td><td align="left"><b>Number 2</b></td><td align="left"><b>Number 3</b></td><td align="left"><b>Number 4</b></td><td align="left"><b>Number 5</b></td><td align="left"><b>Number 6</b></td> 
     <td align="left"><b>Number 7</b></td><td align="left"><b>Number 8</b></td><td align="left"><b>Number 9</b></td><td align="left"><b>Number 10</b></tr>'; 

     // Fetch and print all the records: 
     while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { 
       echo '<tr><td align="left">' . $row['Number_1'] . '</td><td align="left">' . $row['Number_2'] . '</td><td align="left">' . $row['Number_3'] . '</td><td align="left">' . $row['Number_4'] . '</td><td align="left">' . 
       $row['Number_5'] . '</td><td align="left">' . $row['Number_6'] . '</td><td align="left">' . $row['Number_7'] . '</td><td align="left">' . $row['Number_8'] . '</td> 
       <td align="left">' . $row['Number_9'] . '</td><td align="left">' . $row['Number_10'] . '</td></tr>'."\n"; 
     } 

     echo '</table>'; // Close the table. 

     mysqli_free_result ($r); // Free up the resources.  

} else { // If it did not run OK. 

     // Public message: 
     echo '<p class="error">Your numbers could not be retrieved. We apologize for any inconvenience.</p>'; 

     // Debugging message: 
     echo '<p>' . mysqli_error($dbc) . '<br /><br />Query: ' . $q . '</p>'; 

} // End of if ($r) IF. 

mysqli_close($dbc); // Close the database connection. 

私は取得していますエラーは次のとおりです。

あなたの番号が取得できませんでした。ご不便をおかけして申し訳ございません。

SQL構文に誤りがあります。 'CREATE TABLE dbName.tbName(ID int)'の近くの 'SELECTdbName.tbNam'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを参照してください。

クエリ:DROP TABLE IF EXISTS dbName.tbName;

'
dbName.tbName.count DESC
LIMIT 8によってORDER dbName.tbName

FROM
dbName.tbName.ID
を選択' として表dbName.tbName(ID int型)を作成
+0

エラーを抑制するために '@'演算子を使うのは問題があります。 – tadman

+1

私はマルチクエリーを使用していません – Drew

+0

これは私にとって新しいクエリーです。 –

答えて

0

テーブルを作成するときに、内側のクエリの周りに小さな引用符があるかもしれないと思います。

$q = " 
    DROP TABLE IF EXISTS dbName.tbName; 
    CREATE TABLE dbName.tbName (ID int) AS (SELECT 
    dbName.tbName.ID 
    FROM 
    dbName.tbName 
    ORDER BY 
    dbName.tbName.count DESC 
    LIMIT 8)"; 
+0

いいえ、私はそれらを括弧に変えると同じエラーが出ます。 –

+0

私はdrop tableの作業だけでファイルを作成することができました。私は爆破していると信じているそれらを組み合わせている。 –

0

"SELECT"と "dbName.tbName.ID"の間に空白がありませんか?

+0

これは**質問**または**回答**ですか? _answers_ –

+0

以外のコメントを使用することを検討してください。これはファイルを完成させたかったわけではありませんが、うまくいきました。私は両方のクエリを同じファイルに入れ、削除を実行してから作成します。私はファイルがマルチクエリでどのように書かれているのか見てみたいと思っていますが、メモリが集中する可能性があることを理解していますか? –

関連する問題