无法通过php在mysql表中插入数据
我无法将数据插入mysql表。我的代码有什么问题? 下面是我使用的php代码。我在提交时没有得到任何回应。 php在包含html表单的同一页面中使用,因此,我的属性是action=“”和method=“post”。请帮忙。无法通过php在mysql表中插入数据,php,mysql,Php,Mysql,我无法将数据插入mysql表。我的代码有什么问题? 下面是我使用的php代码。我在提交时没有得到任何回应。 php在包含html表单的同一页面中使用,因此,我的属性是action=“”和method=“post”。请帮忙。 在此处输入代码 <?php ob_start(); session_start(); require_once 'dbconnect.php'; // if session is not set this will redirect t
在此处输入代码
<?php
ob_start();
session_start();
require_once 'dbconnect.php';
// if session is not set this will redirect to login page
if( !isset($_SESSION['user']) ) {
header("Location: index.html");
exit;
}
// select loggedin users detail
$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);
if ( isset($_POST['sub']) ) {
// clean user inputs to prevent sql injections
$name1 = $_POST['name1'];
$name2 = $_POST['name2'];
$name3 = $_POST['name3'];
$name4 = $_POST['name4'];
$name5 = $_POST['name5'];
$name6 = $_POST['name6'];
$name7 = $_POST['name7'];
$name8 = $_POST['name8'];
$name9 = $_POST['name9'];
if( !$error ) {
$query = "INSERT INTO users(name1,name2,name3,name4,name5,name6,name7,name8,name9) VALUES('$name1','$name2','$name3','$name4','$name5','$name6','$name7','$name8','$name9') WHERE userId=".$_SESSION['user'];
$res = mysql_query($query);
if ($res) {
$errTyp = "success";
$errMSG = "Successfully registered, you may login now";
unset($name1);
} else {
$errTyp = "danger";
$errMSG = "Something went wrong, try again later...";
}
}
}
?>
正如Alex.Barylski在评论中指出的那样,INSERT语句会创建一个新行,因此不能使用WHERE子句(用于检查现有行…)。如果要更新已存在的行,请使用以下语句代替INSERT语句:
$query = 'UPDATE users SET name1 = "$name1", name2 = "$name2", name3 = "$name3" WHERE userId=' . $_SESSION['user'];
另外请注意,您可以使用mysql\u infected\u rows()检查更新查询是否成功,请参见以下问题:请注意:您没有“清理”任何内容,也没有停止SQL注入。立即使用参数。我支持第一条评论-但如果您正在学习,而这不会投入生产…我首先想到的是插入后的位置。如何为不存在的东西指定标准?您可以使用WHERE进行更新,而不是插入。我知道我简化了代码只是为了理解。但它仍然不起作用,你是对的@SamiKuhmonen。谢谢!if语句中包含的$error参数是什么,