2013-01-21 62 views
0

http://jsfiddle.net/Fd9wx/ 我做了這個,以幫助解決我的問題PHP和MySQL發送查詢到數據庫

,所以我有一些PHP代碼和HTML代碼,應該在我所喜歡創建的HTML表格發送SQL查詢的到數據庫建立新的數據庫,但我填寫我的表單,然後點擊運行它不想爲我工作。我做了一些谷歌研究,現在沒有任何迴應,然後再說「使用PDO並且不再支持」PDO對我來說很難使用,因爲我不瞭解它,我稍後會用到它,但現在不用,我也做了使這個腳本從這裏手,所以不要說「聯繫腳本開發」,如果有人可以指出我正確的方向來解決我的問題,或只是讓我的SQL錯誤顯示在我的腳本中的方式?欲行怎麼刪除所有

這裏是我的腳本

$tablename=$_POST['tablename']; 
$value=$_POST['value']; 
$type=$_POST['type']; 
$length=$_POST['length']; 
$collation=$_POST['collation']; 
$attributes=$_POST['attributes']; 
$null=$_POST['null']; 
$extra=$_POST['extra']; 


// Insert data into mysql 
$sql="CREATE TABLE `a7972613_db`.`$tablename` (
`field1` $type($length) $null $extra 
) ENGINE = MYISAM"; 
$result=mysql_query($sql); 
// if successfully insert data into database, displays message "Successful". 
if($result){ 
echo "Successful"; 
} 

else { 
echo "Please Go Back And Check Your Errors!"; 
} 

的主要部分,多數民衆贊成

+0

請回去檢查你的錯誤! <〜我的預設錯誤是顯示 –

+0

使用'echo mysql_error();'獲取錯誤消息的錯誤。 –

+0

您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068),並應使用[現代替換](http://php.net/manual/en/ mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻擊](http://bobby-tables.com/)**,現代的API會使[防禦]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己從。 – Quentin

回答

0

與您的代碼的問題是你有沒有選擇的數據庫我的主要組成部分。

下面的代碼,用於選擇數據庫

// Connect to server and select database. 
$conn = mysql_connect("$host", "$user", "$password")or die("cannot connect"); 
mysql_select_db($database,$conn); 

,另一個問題是,當你的查詢失敗,你硬編碼錯誤,而是用下面的代碼來檢查哪裏是在您的查詢問題

$result=mysql_query($sql) or die(mysql_error()); 
+0

我做到了這一點,並直接運行它的數據庫,它的工作原理看我的jsfiddle我的表名不被髮送thrue即時通訊試圖在數據庫上運行查詢不是表CREATE TABLE'a7972613_db'.'1236'( 'field1' VARCHAR (15)NOT NULL )ENGINE = MYISAM –

0

查詢更改爲

$result = mysql_query($sql) or die("Error with $sql: " . mysql_error()); 

mysql_error(),你會看到你的問題是什麼。

你可以轉儲$sql字符串中才能看到,無論是正確

echo $sql; 
+0

錯誤的表名''是我得到的 –

+0

@ user1978141您從'$ _POST'數據中獲得'$ tablename'。在表單中輸入正確的表名並重試。 –

+0

看看我的jsfiddle ..我不認爲表名稱文本框正在工作.. –