簡體   English   中英

我的mySQL_query有什么問題?

[英]Whats wrong with my mySQL_query?

當我使用下面的查詢時,它只會在新值短於原始值時更新,有人知道為什么會這樣嗎?

mysql_query("UPDATE users SET first_name='$first_name',
              last_name='$last_name',
              email='$email',
              bio='$bio' WHERE id='$id'");

<?php
    if(isset($_POST['update-profile'])){
        $first_name = $_POST['first_name'];
        $last_name = $_POST['last_name'];
        $email = $_POST['email'];
        $bio = $_POST['bio']; 

        if(empty($bio) || empty($first_name) || empty($last_name) || empty($email)){
            echo 'Please fill in all fields!';
        } else {
            mysql_query("UPDATE users SET first_name='$first_name', last_name='$last_name', email='$email', bio='$bio' WHERE id='$id'");
            echo "Profile Updated";
            header('location: pond.php');
        }

    }
?>
            First Name: <br /><input type="text" name="first_name"></input><br /><br />
            Last Name: <br /><input type="text" name="last_name"></input><br /><br />
            Email Address: <br /><input type="email" name="email"></input><br /><br />
            Bio: <br /><input type="text" name="bio"></input><br /><br />
            <input type="submit" value="Update Profile" name="update-profile">
        </div>
    </div>

正如@Maverick告訴您的那樣。 在PHPMyAdmin中測試句子。

測試SQL語句的最簡單方法是為其使用變量,例如:

$sql = "UPDATE users SET first_name='".$first_name."', last_name='".$last_name."', email='".$email."', bio='".$bio."' WHERE id='".$id."'";

然后使用mysql_query($sql); 然后。

似乎有更多代碼,但是這里的技巧是,您可以注釋掉header() ,在$sql變量前面插入回顯,以將其打印到屏幕上(當再次運行文件時),復制打印的字符串進入PHPMyAdmin ,看看是否應該有PHP不會捕獲的MySQL錯誤。 您也會很快發現是否有任何錯誤

我還將研究MySQLi,它在使用MySQL時將為您提供更多功能,並為您提供保護查詢的更多功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM