2014-10-09 24 views
-1

想使用的輸入值作爲數據庫的名稱,但它不幹活菜鳥:嘗試使用輸入值設置PHP數據庫名稱

<html> 
<form action="config.php" method="Post"> 
<table> 
    <tr><td>DB Name: <input type="text" name="dbname"></td></tr> 
    <tr><td><button type="submit" name="submit_two"> Submit</button></td></tr> 
</table> 
</form> 
</html> 

的config.php

<?php 
$dbname = ""; 
if (isset($_POST['submit_two'])){ 
    $dbname = test_input($_POST["dbname"]); 
    $data = "CREATE DATABASE IF NOT EXISTS $dbname"; 
    if (!$data) { 
     echo "could not connect" . mysql_error(); 
    } elseif ($dbname == ""){ 
     echo "no"; 
    }else{ 
     echo "gud to go"; 
    } 
    } 
function test_input($data) 
    { 
     $data = trim($data); 
     $data = stripslashes($data); 
     $data = htmlspecialchars($data); 
     return $data; 
    } 
?> 

它始終顯示「gud去」,但當我檢查數據庫時,將不會創建任何內容

+0

在這裏做什麼'test_input'? – 2014-10-09 05:16:29

+2

$ dbname = $ _ POST [「dbname」]; $ data = mysql_query(「CREATE DATABASE IF NOT EXISTS $ dbname」); – 2014-10-09 05:16:41

+0

是@ankurbhadania是對的 – 2014-10-09 05:17:27

回答

0

從你的代碼,你所做的只是創建幾個字符串;在某些時候,您必須連接到數據庫並將其作爲SQL執行。例如,請參閱this關於如何使用PDO_mysql的教程。

您可能還想看看類似項目的代碼,例如this list of "10 Database Management Tools for Developers"上的項目,以獲取創意並瞭解哪些事情長期運行/不能很好地工作。

2

你忘了運行MySQL查詢:

<?php 
//first, create the connection 
$con = mysqli_connect("the_db_host","db_user","db_pass"); 

//then, execute your code like: 
$dbname = ""; 
if (isset($_POST['submit_two'])){ 
    $dbname = test_input($_POST["dbname"]); 
    $data = mysqli_query($con, "CREATE DATABASE IF NOT EXISTS $dbname"); 
    if (!$data) { 
     echo "could not connect" . mysqli_error($con); 
    } elseif ($dbname == ""){ 
     echo "no"; 
    }else{ 
     echo "gud to go"; 
    } 
} 

function test_input($data) 
{ 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 
?> 

UPDATE 通過@ Krishna的評論,我更新這個答案。

關於mysqli_*mysql_*有幾個原因:

  • OO接口
  • 支持交易
  • 支持預處理語句
  • 支持多條語句在

更多信息official documentation

+0

爲什麼不提你說爲什麼使用'mysqli_ *'函數而不是'mysql_ *'。 – krishna 2014-10-09 06:14:06

+0

也'mysqli_error()'期待一個參數給出 – krishna 2014-10-09 06:18:30

+0

哦!你是對的。查看我的更新。 – rogelio 2014-10-09 06:26:05

相關問題