php - 记录不会用 PHP 更新 MySQL

标签 php mysql

我这辈子都想不通为什么下面的记录不会更新。它给了我一条成功消息,但实际上并没有更新记录。我经历了大量的修改并尝试了我能想到的一切。其他人能看出问题出在哪里吗?

<?php
$id = $_POST['id'];
        $username = $_POST['username'];
        $fname = $_POST['fname'];
        $lname = $_POST['lname'];
        $email = $_POST['email'];
        $company = $_POST['company'];
        $rep1 = $_POST['rep1'];
        $rep2 = $_POST['rep2'];
        $rep3 = $_POST['rep3'];
        $phone = $_POST['phone'];
        $fax = $_POST['fax'];
        $cell = $_POST['cell'];
        $service = $_POST['service'];
        $license = $_POST['license'];
        $expdate = $_POST['expdate'];
        $active = $_POST['active'];
        $userlevel = $_POST['userlevel'];

$host="XXXXXXX"; // Host name 
$username="XXXXXX"; // Mysql username 
$password="XXXXXXX"; // Mysql password 
$db_name="XXXXXXX"; // Database name 
$tbl_name="users"; // Table name 

// Connect to server and select database.
$con = mysqli_connect("$host", "$username", "$password","$db_name")or die("cannot connect"); 


// update data in mysql database 
$sql="UPDATE $tbl_name SET id='".$id."', fname='".$fname."', lname='".$lname."', email='".$email."', company='".$company."', rep1='".$rep1."', rep2='".$rep2."', rep3='".$rep3."', phone='".$phone."', fax='".$fax."', cell='".$cell."', service='".$service."', license='".$license."', expdate='".$expdate."', active='".$active."', userlevel='".$userlevel."'".
       "WHERE id = '".$id."'";
$result=mysqli_query($con,$sql);

// if successfully updated. 
if($result){
  $emailID = "info@domain.com";
        $subject = "Registration notification from. $fname . through website";
$body = <<<EOD

        <table cellspacing="0" cellpadding="1" border="1">
            <tbody>
                <tr>
                    <td style="padding: 5px 10px;" width="150">Name: </td>
                    <td style="padding: 5px 10px;">$fname $lname</td>
                </tr>
                <tr>
                    <td style="padding: 5px 10px;" width="150">Mobile: </td>
                    <td style="padding: 5px 10px;">$cell</td>
                </tr>
                <tr>
                    <td style="padding: 5px 10px;" width="150">Email: </td>
                    <td style="padding: 5px 10px;">$email</td>
                </tr>
                <tr>
                    <td style="padding: 5px 10px;" width="150">License Number: </td>
                    <td style="padding: 5px 10px;">$license</td>
                </tr>
            </tbody>
        </table>

EOD;

        $headers = "From: info@domain.com\r\n";
        $headers .= "MIME-Version: 1.0\r\n";
        $headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
        $headers .= "X-Priority: 1\r\n";
        $headers .= "X-MSMail-Priority: High\n";
        $headers .= "X-Mailer: PHP". phpversion() ."\r\n";

        mail($emailID, $subject, $body, $headers );
        echo "<h4>Thank you for updating your account info. We will authorize your account and notify you once we have verified your license number and expiration.</h4>";
}
else {
echo "ERROR";
}

?>

最佳答案

您的最后一个值后面没有空格,因此 where 关键字“卡在”了它。 只需在 where 之前添加一个空格,就可以了:

$sql="UPDATE $tbl_name SET id='".$id."', fname='".$fname."', lname='".$lname."', email='".$email."', company='".$company."', rep1='".$rep1."', rep2='".$rep2."', rep3='".$rep3."', phone='".$phone."', fax='".$fax."', cell='".$cell."', service='".$service."', license='".$license."', expdate='".$expdate."', active='".$active."', userlevel='".$userlevel."'".
   " WHERE id = '".$id."'"; // Note the additional space here

关于php - 记录不会用 PHP 更新 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25652096/

相关文章:

php - 使用 PHP 将文件写入 Linux 的问题

php - 提交表单后如何在选择框上保持输入值

php - 从mySQL数据库填充的网站表单,如何返回数据

php - 使用 htaccess 隐藏扩展名不起作用

MYSQL 组合使用相同列的两个计数

php - 使用 MySQL 的输出来提取附加信息

php - 使用 RoyalSlider 在两个不同的幻灯片中显示 MySQL 数据库结果

python - 使用 python 的谷歌应用程序引擎中的服务器内部错误

MySql 存储过程的参数与影响的列同名,这可能吗?

mysql - 也许如何从选择中选择