我是PHP的新手。我有一个表单发布到PHP页面来更新数据库。除了更新数据库中的表外,PHP文件中的所有内容都在运行。
以下是我的PHP页面代码:
<?php session_start();
// Connects to your Database
mysqli_connect("xxxxxx", "xxxxxx", "xxxxxx") or die(mysqli_error());
mysqli_select_db("xxxxxx") or die(mysqli_error());
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$myuserid=$_SESSION[myuserid];
$mypassword=$_SESSION[mypassword];
$data = mysqli_query("SELECT * FROM registrations") or die(mysqli_error());
$info = mysqli_fetch_array( $data );
if ($myuserid == $_SESSION[myuserid]){
mysqli_query("UPDATE registrations SET (att_one_relationship='$_POST[att_one_relationship]') WHERE user_id='$myuserid' AND password='$mypassword'") or die(mysqli_error());
echo $_POST[att_one_relationship];
}
if ($info['trust_corp'] == "Yes" && $info['trust_corp_type'] == "Replacement Attorney"){
echo $myuserid;
echo $mypassword;
}
else{
header("location:form5.php");
}
?>
我将UPDATE
函数包装在if
语句中,并回显了我要更新的内容。回声功能正常,但不是UPDATE。我还对用户ID和密码进行了回声,以证明它正在获取正确的详细信息。
如果有人可以提供任何帮助,为什么它没有更新表格,那就太棒了!
我添加了'或死(mysqli_error());'它出现了这个错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(att_one_relationship='Solicitor') WHERE user_id='1' AND password='xxxxxx'' at line 1
然后我将mysqll_的所有出现修改为mysqli_,现在出现此错误:
Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in /.../update4.php on line 5
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /.../update4.php on line 5
我已经用现在的内容更新了上面的代码。
感谢您的帮助!
答案 0 :(得分:1)
在您的更新查询中,您使用$ _POST [att_one_relationship],但您需要在引号中包含att_one_relationship。
此外,您应该在查询中使用$ _POST ['att_one_relationship']之前将其设置为变量。
例如:
$att_one_relationship = $_POST['att_one_relationship'];
mysql_query("UPDATE registrations SET (att_one_relationship='$att_one_relationship') WHERE user_id='$myuserid' AND password='$mypassword'");
答案 1 :(得分:0)
如前所述,mysql!= mysqli(注意i)
我认为这是一个SQL错误 尝试在mysql_query的末尾添加“或die(mysql_error())”。 像这样:
mysql_query("UPDATE registrations SET (att_one_relationship='$_POST[att_one_relationship]') WHERE user_id='$myuserid' AND password='$mypassword'") or die(mysql_error());
这不会解决问题,但会显示可能的SQL错误。 如果你说,mysql_query()工作后的回声,这意味着没有FATAL错误。 也许是一个警告PHP将忽略并将继续......
试一试,看看会发生什么,然后在这里发布回复。
干杯。