2015-04-15 109 views
0

我想在將數據輸入到表格之前檢查表格是否存在。我正在嘗試mysql_query,並得到我應該使用mysqli的錯誤,但它似乎不適合我。在插入php之前檢查表格存在sql sql

這是我到目前爲止的代碼:

$AllData = $_POST["table"]; 
foreach ($AllData as $sigleData) { 
    $table = $sigleData['name']; 
    $columns = implode(", ", $sigleData['columns']); 
    $columnData = implode(" ',' ", $sigleData['data']); 

    // Insert into database tuple data  
    $sqlQuery = "INSERT INTO " . $table . " (" . $columns . ") VALUES('" . $columnData . "')"; 


    if ($dbConnectionT->query($sqlQuery) == TRUE) { 
     echo "database updated"; 
     echo "</br>"; 
    } 
} 
+2

我沒有看到你的代碼,你想,如果像你說的 –

+0

確實存在該表來檢查它不是一個通知,告訴您使用[MySQLi](http://php.net/manual/en/book.mysqli.php),因爲PHP的'mysql'類已被棄用? – Scott

回答

0

試試這個方法來檢查table存在,或不使用此自定義函數,然後insert行的分貝。

function check_table_exist($table){ 
    global $dbConnection; // see here global connection variable 
    $sql = "SHOW tables LIKE '".$table."'"; 
    $res = $dbConnection->query($sql); 
    return ($res->num_rows > 0); 
} 

#檢查第一表存在或不

if(check_table_exists($table)){ 
$sqlQuery = "INSERT INTO " . $table . " (" . $columns . ") VALUES('" . $columnData . "')"; 
//do other stuff........ 
}else{ 
    echo "Table Not Exists"; 
    die('Going Out'); 
} 
0

表名稱被接受爲POST參數,認真! - 不好的做法。 你可以做各種檢查,以表存在像

DESC tbl_name; 
SHOW CREATE TABLE tbl_name; 
SHOW TABLES like 'tbl_name';