2015-07-04 65 views
1

我在PHP中使用下面的代碼來測試將數據從簡單的Web表單保存到MySQL中。表單有兩個接受文本的基本框:input1和input2。當我完成這些並點擊提交時,沒有問題。但是,當我在MySQL中訪問數據庫時,我只看到'1',在那裏我應該看到我輸入的實際文本。起初,我認爲這是一個布爾型,但兩個字段都設置爲接受VARCHAR(並設置爲null)。無論我在表單中輸入文字還是出現1。表單輸入在MySQL數據庫中保存爲'1'

非常基本的HTML表單:

<form action="signupform.php" method="post" /> 
<p> Input 1: <input type="text" name="input1" /></p> 
<p> Input 2: <input type="text" name="input2" /></p> 
<input type="submit" value="Submit" /> 
</form> 

這裏使用的PHP:

$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME); 

if (!$connection) { 
    die('Could not connect: ' . mysqli_connect_error()); 
} 

$connection_selected = mysqli_select_db($connection, 'demo'); 

if (!$connection_selected) { 
    die('Can\'t use ' . 'DB_NAME' . ': ' . mysqli_error($connection)); 
} 

echo 'Connected successfully'; 

$value1 = isset($_POST['input1']); 
$value2 = isset($_POST['input2']); 

$sql = "INSERT INTO form1 (input1, input2) VALUES ('$value1', '$value2')"; 
if (!mysqli_query($connection, $sql)) { 
    die('Error: ' . mysqli_error($connection)); 
} 

mysqli_close($connection); 

?> 

欣賞的幫助。

+0

把'的var_dump($ _ POST);退出;'在PHP文件的頂部,看看它說什麼。 – jonbaldie

+0

你可以通過使用PHP框架來消除所有這些基本問題的痛苦,它會模仿這樣的東西,讓你去做有趣的事情 –

+0

只需刪除isset()以查看它是否有效。 –

回答

3

你在這裏做得不對

$value1 = isset($_POST['input1']); 
$value2 = isset($_POST['input2']); 

應怎麼做這是,你節省的布爾值。分別變量$value1 & $value2。那是True = 1 & False = 0而你正在將它插入數據庫。難怪你在數據庫中有0和1。

if(isset($_POST['input1']) && isset($_POST['input2'])){ 
    $value1 = $_POST['input1']; 
    $value2 = $_POST['input2']; 
} 

這將做

+0

啊,現在很有意義...非常感謝! – Sarwech

相關問題