从表单写入数据库

时间:2013-07-06 07:22:28

标签: php mysql database

我有以下代码来使输入表单写在名为“client”数据库'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'未写入数据库。我做错了什么?

5 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您遗失mysql_query()

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

答案 2 :(得分: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();

答案 3 :(得分:0)

除了一个外,一切看起来都很棒:  只需使用mysql_query()函数,比如

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

答案 4 :(得分:0)

您将查询保存在变量中,但该变量本身没有执行任何操作

mysql_query($sql);

mysql_query 将帮助您插入数据库中的所有数据。