我试图从简单的注册表格中插入数据到MySQL中。我有我的数据库托管在亚马逊AWS RDS上,使用DBeaver编辑它。当我运行代码时,我得到以下内容无法弄清楚为什么我的PHP没有插入到MySQL DB中
affected_rows。“插入到数据库中的数据”。 } else {echo“发生了 错误,未添加项目。”; } $ db-> close(); ?>
我该如何解决这个问题?我的PHP错了吗?我很疑惑我是否可以使用MySQLi,我将如何确定?我假设Amazon RDS MySQL兼容。
<?php
// create short variable names
$name=$_POST['name'];
$birthdate=$_POST['birthdate'];
$email=$_POST['email'];
$password=$_POST['password'];
$address=$_POST['address'];
$city+$_POST['city'];
if (!get_magic_quotes_gpc()) {
$name = addcslashes($name);
$birthdate = addslashes($birthdate);
$email = addcslashes($email);
$password = addcslashes($password);
$address = addcslashes($address);
$city = addcslashes($city);
}
$host='xxxxxx'
$user='admin'
$password='xxxxx'
$dbname='users'
@ $db = mysqli_connect($host,$user,$password,$dbname)
if (mysqli_connect_errno()) {
echo 'Error: Could not connect to database. Please try again later.';
exit;
}
// Execute the query
$query = "INSERT INTO vestorinfo (name,birthdate,email,password,address,city)
VALUES ('$_POST[name]','$_POST[birthdate]','$_POST[email]','$_POST[password]','$_POST[address]','$_POST[city]')";
$result = mysqli_query($query)
or die ("Couldn't execute query."};
if ($result) {
echo $db->affected_rows." data inserted into database.";
} else {
echo "An error has occurred. The items were not added.";
}
$db->close();
?>
这里是从HTML页面的形式
<div id="registerform">
<form action="php/registerprocess.php" method="post" class="form-horizontal">
<fieldset>
<!-- Form Name -->
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="name">Name</label>
<div class="col-md-4">
<input id="name" name="name" placeholder="Your name" class="form-control input-md" required="" type="text">
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="birthdate">Birth Date</label>
<div class="col-md-4">
<input id="birthdate" name="birthdate" placeholder="07/04/1950" class="form-control input-md" required="" type="text">
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="email">Email</label>
<div class="col-md-4">
<input id="email" name="email" placeholder="" class="form-control input-md" required="" type="text">
</div>
</div>
<!-- Password input-->
<div class="form-group">
<label class="col-md-4 control-label" for="password">Password</label>
<div class="col-md-4">
<input id="password" name="password" placeholder="" class="form-control input-md" required="" type="password">
<span class="help-block">Must be >= 8 characters including at least 1 number</span>
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="email">Address</label>
<div class="col-md-4">
<input id="address" name="address" placeholder="" class="form-control input-md" required="" type="text">
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="email">City</label>
<div class="col-md-4">
<input id="city" name="city" placeholder="" class="form-control input-md" required="" type="text">
</div>
</div>
</div>
</fieldset>
它看起来像你的PHP没有运行,为什么不回显真正的错误? –
您已经开放SQL注入。由于您使用的是mysqli,请利用[prepared statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和[bind_param](http://php.net/手动/ EN/mysqli的-stmt.bind-param.php)。这将解决您可能遇到的任何烦人的引用问题。同时检查一路上的mysqli错误。 – aynber
'$ city + $ _ POST ['city'];'应该是'$ city = $ _ POST ['city'];'在设置所有这些值之后,为什么要回退到在插入中使用$ _POST值? –