我有以下代码来使输入表单写在名为“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'未写入数据库。我做错了什么?
答案 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 将帮助您插入数据库中的所有数据。