2013-07-06 46 views
1

,我有以下的代碼做一個輸入的形式被寫入名爲「客戶」數據庫「smsmart」其中有場名稱,地址和電話從形式寫入數據庫

<?php 

define ('DB_USER', 'root'); 
define ('DB_PASSWORD', ''); 
define ('DB_HOST', 'localhost'); 
define ('DB_NAME', 'smsmart'); 

$link = mysql_connect('localhost', 'root', ''); 

if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 

$db_selected = mysql_select_db("smsmart"); 

if (!$db_selected) { 
    die('Can\'t use ' . smsmart . ': ' . mysql_error()); 
} 

$value1 = $_POST['username']; 
$value2 = $_POST['address']; 
$value3 = $_POST['mobileno']; 

$sql = "INSERT INTO client (name,address,phone) VALUES ('$value1', '$value2', '$value3')"; 

mysql_close(); 
?> 

字段的表表單中的'username''address'和'mobileno'沒有被寫入數據庫。我究竟做錯了什麼?

+0

請粘貼HTML表格。 – Nadh

+0

試試'echo $ sql;' –

+2

你沒有執行查詢 – Strawberry

回答

0

您保存您的查詢的變量,但該變量沒有做任何事情本身

mysql_query($sql); 

的mysql_query將幫助您插入數據庫中的所有數據。

0

你缺少mysql_query()

$sql = "INSERT INTO client (name,address,phone) VALUES ('$value1', '$value2', '$value3')"; 
mysql_query($sql); 
mysql_close(); 
1

它看起來像你正在生成$sql查詢,但沒有執行它。鑑於您的$_POST輸入端缺乏衛生設施,您應該使用參數化或PDO方法來保護自己免受潛在的SQL攻擊。

以下是基於參數的mySQLi插入示例。

// connect to the database 
$dbConnection = mysqli_connect("localhost", "root", "", "smsmart"); 
// prepare statement 
$stmt = mysqli_prepare($dbConnection, "INSERT INTO client (name,address,phone) VALUES (?,?,?)"); 
// bind parameters 
mysqli_stmt_bind_param($stmt, "sss", $value1, $value2, $value3); 
// execute statement 
mysqli_stmt_execute($stmt); 
// close statement 
mysqli_stmt_close($stmt); 
// close database connection 
mysqli_close($link); 
0
$sql = "INSERT INTO client (name,address,phone) VALUES ('$value1', '$value2', '$value3')"; 

mysql_close(); 

因此增加的mysql_query

應該是除了一個

$sql = "INSERT INTO client (name,address,phone) VALUES ('$value1', '$value2', '$value3')"; 
mysql_query($sql); 
mysql_close(); 
0

一切看起來不錯: 只使用mysql_query()函數,就像

$sql = "INSERT INTO client (name,address,phone) VALUES ('$value1', '$value2', 
    '$value3')"; 
    mysql_query($sql); 
    mysql_close();