2016-08-19 7 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)'근처에서 사용할 올바른 구문에 대해서는 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 2 행의 'SELECTdbName.tbNam'AS

쿼리 : DROP TABLE IF EXISTS dbName.tbName;
TABLE dbName.tbName (ID의 INT)이 AS

'
ORDER
dbName.tbName.count DESC
LIMIT 8
dbName.tbName FROM
dbName.tbName.ID
선택'CREATE
+0

'@ '연산자를 사용하여 오류를 억제하는 것은 문제가 있습니다. – tadman

+1

my multi_query를 사용하지 않습니다 – 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 작업과 create table 만 사용하는 파일을 가진 파일을 얻을 수있었습니다. 나는 그들이 날아 오르고 있다고 믿는 그들을 결합하고있다. –

0

"SELECT"와 "dbName.tbName.ID"사이에 공백이 누락 되었습니까?

+0

** 질문 ** 또는 ** 답변 **입니까? _answers_ –

+0

에 대한 의견을 사용하는 것을 고려하십시오.이 방법은 파일을 완성하는 방법이 아니지만 효과적입니다. 나는 두 파일을 같은 파일에 넣고 삭제를 실행 한 다음 작성합니다. 필자는 메모리 집약적 일 수 있다는 것을 알고 있지만 파일이 다중 쿼리로 어떻게 작성되었는지 보는 데 관심이 있습니까? –