[英]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.