-3

好吧,自从我研究这个位以来已经有大约 5 个小时了,我就是无法让它工作。我到处都看过,但我的代码似乎是……独一无二的。无论如何,我正在尝试更改我的 SQL 数据库中特定表中的条目。表的名称是 userdb。我有 5 个文本框,名称、用户名、密码、电子邮件和 ID。其中 ID 是查询查找我要查找的条目所需的主键,其余 4 个文本框填充了我想要的新条目。

这是我的名为 admin.php 的主要 PHP 文件的内容,它位于 head 标签中:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
     $(document).ready(function() { 
      $(".test4").click(function() { 
             var id = $("#txUserid").val();
             $.post("updateUser.php", { id: id }, function(data) { 
                 alert(data);
             });
      });
 });

这个在体内:

     <font color="white">Name</font><input class="test1" type="text" id="txNm" value="" onkeyup="nospaces(this)">
                <font color="white">Username</font><input class="test1" type="text" id="txUsn" value="" onkeyup="nospaces(this)">
                <font color="white">Password</font><input class="test1" type="password" id="txPwd" value="" onkeyup="nospaces(this)">
                <font color="white">E-Mail</font><input class="test1" type="text" id="txEml" value="" onkeyup="nospaces(this)">
                <font color="white">Updater - ID, only affected by the Delete & Update button.</font><input class="test1" type="text" id="txUserid" value="" onkeyup="nospaces(this)">

<input class="test4" name="Submit" type="submit" value="" id="submit"/>

这是我的 updateUser 函数,它存储在“mshop2.script.js”中:

function updateUser(){
var name = $('#txNm').val();
var username = $('#txUsn').val(); 
var password = $('#txPwd').val(); 
var email = $('#txEml').val();
var id = $('#txUserid').val();

var finalData = {
    nm: name,
    usn: username, 
    pwd: password,
    eml: email,
    uid: userid
};



$.post('updateUser.php', finalData, function(resp){
    if(resp == 'success'){
        alert('User successfully modified.');
        getUserList();
    }
}); 

}

这是我的 updateUser.php 文件:

<?php
include 'config.php';

$nm = mysql_real_escape_string($_POST["nm"]);
$usn = mysql_real_escape_string($_POST["usn"]);
$pwd = mysql_real_escape_string($_POST["pwd"]);
$eml = mysql_real_escape_string($_POST["eml"]);
$id = mysql_real_escape_string($_POST["id"]);

$sql = "SELECT ID FROM userdb WHERE ID='$id'";
$result = mysql_query($sql);
if(mysql_num_rows($result) >0)
{
   //found
  $q = "UPDATE userdb
SET `name` = '$nm',
`username` = '$usn',
`password` = '$pwd',
`email` = '$eml'
WHERE ID ='$uid'";
}
else
{
   //not found
   die('Error: The ID does not exist.' . mysql_error());
echo mysql_error();
}

$result = mysql_query($q);
if(empty($_POST['nm'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['usn'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['pwd'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['eml'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['uid'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['id'])) {
die('You need to enter a value for the Name field');
}



if(!mysql_query($q, $con)){
    die('Error: ' . mysql_error());
    echo mysql_error();
}else{
    echo 'success';
}


mysql_close($con);


  ?>

我无法弄清楚是什么导致它无法工作,我想输入的预期条目,例如,如果我在 ID 文本框中输入了“50”。ID 将保持不变,但其余字段为空。这次我做错了什么?

4

1 回答 1

2

我认为你让事情变得比它们必须要复杂得多 - 首先我会在你所在的地方停下来并切换到使用 SQLi。

http://php.net/manual/en/book.mysqli.php

至少不建议使用常规 SQL。我会查看 MySQLi 手册。你会找到你要找的……祝你好运!

于 2013-06-21T15:30:56.887 回答