SQL查询不更新数据库 [英] SQL query not updating database
问题描述
我的数据库没有更新,不显示任何错误,任何人?
我已经设置了$ id和所有的变量,但如果我在我的查询中做错了,你可以吗?
提前感谢
PHP CODE
<?php
//从用户
的数据库获取值if if(isset($ _ GET ['id'])){
$ id =(int)$ _GET ['id'];
$ result = mysql_query(SELECT * FROM Credentials,Company WHERE Credentials.ID = $ id AND Company.CompanyID = $ id)或trigger_error(mysql_error());
$ row = mysql_fetch_array($ result);
}
if(isset($ _ POST ['submitted'])){
//定义变量的索引
if (isset($ _ POST ['email'])){
$ email = $ _POST ['email'];
}
if(isset($ _ POST ['password'])){
$ password = $ _POST ['password'];
}
if(isset($ _ POST ['permission'])){
$ permission = $ _POST ['permission'];
}
if(isset($ _ POST ['status'])){
$ status = $ _POST ['status'];
}
//所有字段的安全输入
$ email = safe_input($ email);
$ password = safe_input($ password);
$ permission = safe_input($ permission);
$ status = safe_input($ status);
//双检查输入
foreach($ _ POST AS $ key => $ value) {$ _POST [$ key] = mysql_real_escape_string($ value); }
// SQL查询
$ sql = mysql_query(UPDATE Credentials SET`Email` ='。$ email。',`Password` ='。 ','Permission` ='。$ permission。',`Status` ='。$ status。'WHERE`ID`= $ id)或die(mysql_error());
echo< div id ='add-success'>< i class ='fa fa-check'>< / i>& nbsp;< b& !< / b>< / div>< br />;
}
?>
HTML
< form action ='edit.php?id =<?php echo safe_input($ id); ?>'method ='POST'id =add-merchantenctype =multipart / form-data>
< p>< br />
< h6>电子邮件< / h6>
< input type ='text'name ='email'value =<?php echo nl2br($ row ['Email']);?"
onfocus =if(this.value == this.defaultValue)this.value =''
onblur =if(this.value =='')this.value = this.defaultValue />
< p>< br />
< h6>输入新密码< / h6>
< input type ='text'name ='password'value ='Password'
onfocus =if(this.value == this.defaultValue)this.value =''
onblur =if(this.value =='')this.value = this.defaultValue/>
< p>< br />
< h6>权限< / h6>
< select name =permission>
< option value =0selected>未验证< / option>
< option value =1>已验证< / option>
< / select>
< p>< br />
< h6>状态< / h6>
< select name =status>
< option value =1selected>已启用< / option>
< option value =0>已停用< / option>
< / select>
< p>< input type ='submit'value ='Update'/>< input type ='hidden'value ='1'name = />
< / form>
id 如果是这样,那么你的sql查询应该是这样的。
$ sql = mysql_query(UPDATE Credentials SET`Email` = 。$ email。',`Password` ='。$ password。',`Permission` ='。$ permission。',`Status` ='。 = $ id)// id = $ id无引号,因为它是数字
mysql_query(UPDATE Credentials SET`Email` ='{$ email}',`Password` ='{password}','Permission` ='{$ permission}','Status` ='{$ status}'WHERE`ID`= $ id)
pre>
如果这也不工作粘贴查询在phpmyadmin或您的数据库尝试在线运行查询如果可能。还设置error_reporting(E_ALL)让浏览器显示错误;
my database is not updating and not displaying any errors, anyone ? i already set the $id and all the variables but can you please if i'm doing something wrong in my query ? thank you in advance
PHP CODE
<?php //get values from Database for user if (isset($_GET['id']) ) { $id = (int) $_GET['id']; $result = mysql_query("SELECT * FROM Credentials, Company WHERE Credentials.ID = $id AND Company.CompanyID = $id") or trigger_error(mysql_error()); $row = mysql_fetch_array($result); } if (isset($_POST['submitted'])) { //define index for variables if(isset($_POST['email'])){ $email = $_POST['email']; } if(isset($_POST['password'])){ $password = $_POST['password']; } if(isset($_POST['permission'])){ $permission = $_POST['permission']; } if(isset($_POST['status'])){ $status = $_POST['status']; } //safe input for all fields $email = safe_input($email); $password = safe_input($password); $permission = safe_input($permission); $status = safe_input($status); //double checking inputs foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); } //SQL queries $sql = mysql_query("UPDATE Credentials SET `Email` = '".$email."' , `Password` = '".$password."' , `Permission` = '".$permission."', `Status` = '".$status."' WHERE `ID` = $id ") or die(mysql_error()); echo "<div id='add-success'><i class='fa fa-check'></i> <b>Updated Successfuly!</b></div><br/>"; } ?>
HTML
<form action='edit.php?id=<?php echo safe_input($id); ?>' method='POST' id="add-merchant" enctype="multipart/form-data"> <p><br /> <h6>Email</h6> <input type='text' name='email' value="<?php echo nl2br($row['Email']); ?>" onfocus="if (this.value==this.defaultValue) this.value = ''" onblur="if (this.value=='') this.value = this.defaultValue"/> <p><br /> <h6>Enter New Password</h6> <input type='text' name='password' value='Password' onfocus="if (this.value==this.defaultValue) this.value = ''" onblur="if (this.value=='') this.value = this.defaultValue"/> <p><br /> <h6>Permission</h6> <select name="permission"> <option value="0" selected>Unverified</option> <option value="1">Verified</option> </select> <p><br /> <h6>Status</h6> <select name="status"> <option value="1" selected>Activated</option> <option value="0">Deactivated</option> </select> <p><input type='submit' value='Update' /><input type='hidden' value='1' name='submitted' /> </form>
解决方案Is id field numeric, if so then your sql query should be like this.
$sql = mysql_query("UPDATE Credentials SET `Email` = '".$email."', `Password` = '".$password."', `Permission` = '".$permission."', `Status` = '".$status."' WHERE `ID` = $id ") // id = $id without quotes because it is numeric
IF this above query is not working try this one
mysql_query("UPDATE Credentials SET `Email` = '{$email}', `Password` = '{password}', `Permission` = '{$permission}', `Status` = '{$status}' WHERE `ID` = $id")
If this too doesn't works paste the query in phpmyadmin or your database try running the query online if possible.Also set error_reporting(E_ALL) to let browser display error;
这篇关于SQL查询不更新数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!