PHP/MySql 更新不起作用

标签 php html mysql database phpmyadmin

我已经创建了 2 个页面

update.php
edit.php

我们从 edit.php 开始,所以这是 edit.php 的脚本

<?php
$id = $_SESSION["id"];
$username = $_POST["username"];
$fname = $_POST["fname"];
$password = $_POST["password"];
$email = $_POST["email"];

mysql_connect('mysql13.000webhost.com', 'a2670376_Users', 'Password') or     die(mysql_error());
echo "MySQL Connection Established! <br>";

mysql_select_db("a2670376_Pass") or die(mysql_error());
echo "Database Found! <br>";

$query = "UPDATE members SET username = '$username', fname = '$fname', 
password = '$password' WHERE id = '$id'";

$res = mysql_query($query);

if ($res)
echo "<p>Record Updated<p>";
else
echo "Problem updating record. MySQL Error: " . mysql_error();
?>

<form action="update.php" method="post">
<input type="hidden" name="id" value="<?=$id;?>">
ScreenName:<br> <input type='text' name='username' id='username' maxlength='25'   style='width:247px' name="username" value="<?=$username;?>"/><br>
FullName:<br> <input type='text' name='fname' id='fname' maxlength='20' style='width:248px'     name="ud_img" value="<?=$fname;?>"/><br>
Email:<br> <input type='text' name='email' id='email' maxlength='50' style='width:250px'    name="ud_img" value="<?=$email;?>"/><br>
Password:<br> <input type='text' name='password' id='password' maxlength='25'     style='width:251px' value="<?=$password;?>"/><br>
<input type="Submit">
</form>

现在这是 update.php 页面,我遇到了主要问题

<?php
session_start();
mysql_connect('mysql13.000webhost.com', 'a2670376_Users', 'Password') or   die(mysql_error());
mysql_select_db("a2670376_Pass") or die(mysql_error());

$id = (int)$_SESSION["id"];

$username = mysql_real_escape_string($_POST["username"]);
$fname = mysql_real_escape_string($_POST["fname"]);
$email = mysql_real_escape_string($_POST["email"]);
$password = mysql_real_escape_string($_POST["password"]);


$query="UPDATE members
SET username = '$username', fname = '$fname', email = '$email', password = '$password'
WHERE id='$id'";


mysql_query($query)or die(mysql_error());
if(mysql_affected_rows()>=1){
echo "<p>($id) Record Updated<p>";
}else{
echo "<p>($id) Not Updated<p>";
}
?> 

现在在 edit.php 上,我填写表格来编辑帐户“test”,同时我现在登录到该帐户,一旦表格填写完毕,我点击|提交!|按钮 它需要我去 update.php 并返回这个

(0) Not Updated  

(0) <= id of user logged in

Not Updated <= MySql Error from  


mysql_query($query)or die(mysql_error());
if(mysql_affected_rows()>=1){

我希望它更新登录的用户,如果我在这个脚本中没有弄错的话,它会说

  $id = (int)$_SESSION["id"];

witch 使用登录者的 ID 更新用户

但它没有更新它的说法,即没有表受到影响

如果有帮助的话这是我的 MySql 数据库图片 只需点击这里http://i50.tinypic.com/21juqfq.png

即使有

session_start();

它不会工作返回与以前相同的thif

最佳答案

您似乎尚未开始 session ,因此未设置 $_SESSION['id']

session_start();

而且,一如既往地不要使用 mysql_* 函数,那个时代已经过去了。使用mysqliPDO

关于PHP/MySql 更新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13485606/

相关文章:

html - 如何让一个div层忽略用户点击,并允许点击传递给下面的div/select?

mysql - 搜索两个查询并消除没有关系的行的最佳方法

mysql - 在单个查询中按多个日期范围聚合列

php - 使用 'grep -i ' DocumentRoot'httpd.conf' 安装 php

php - 如果没有 PDFlib 库,如何从 HTML 生成 PDF?

jquery - 如何为元素设置动画同时更改其不透明度?

php - 我想将多个复选框选定的选项保存到 MySQL 中

php - Symfony 环境和调试栏

php - 如何根据 php 数据库值动态更改 HTML 中的内容?

javascript - 导航到无序列表中的上层列表元素