Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么可以';我不能更新mysql表吗?_Php_Sql_Updating - Fatal编程技术网

Php 为什么可以';我不能更新mysql表吗?

Php 为什么可以';我不能更新mysql表吗?,php,sql,updating,Php,Sql,Updating,我的sql表没有更新。我已经查阅了大量的文档,但我不明白为什么它不起作用 if (!empty($_POST['services'])){ $username = mysql_real_escape_string($_POST['username']); $service = mysql_real_escape_string($_POST['services']); $registerquery = mysql_query("UPDATE users SET servic

我的sql表没有更新。我已经查阅了大量的文档,但我不明白为什么它不起作用

if (!empty($_POST['services'])){
    $username = mysql_real_escape_string($_POST['username']);
    $service = mysql_real_escape_string($_POST['services']);
    $registerquery = mysql_query("UPDATE users SET service = '".$service."' WHERE Username = '".username."'");
}

请更新您的代码以使用PDO。使用预先准备好的语句插入数据库会更容易、更安全

例如:

<?php
    $stmt = $db->prepare("UPDATE `users` SET `services`=:service WHERE `username`=:username");
    $stmt->execute(array(':username' => $username, ':service' => $service));
?>

在学习PDO的基础知识时,这里有一个很好的资源。

祝你过得愉快!
-斯科特

我已经两次尝试关闭这个。我所要做的就是在update命令的“service”末尾添加一个“s”。我忽略了它与表中请求的字段不匹配的事实。

请这样替换并执行

 $registerquery = mysql_query("UPDATE users SET service = '".$service."' WHERE Username = '".$username."'");

我的错误是我写的:
$registerquery=mysql\u query(“更新用户集服务=”“$service.”其中Username=”.Username。“”)而我在服务中丢失了
$
s
。要更正此问题:
$registerquery=mysql\u query(“更新用户集服务=”“$service.”“其中用户名=”“$Username.”)谢谢大家的帮助。昨晚我提交了另一个答案,说我发现了错误。

如果“.username.”“
是您的真实代码,这是一个未定义的常量;忘记了
$
符号。输入错误问题。这里只提一点:如果他使用的是PHP7+,那么无论代码写得多么正确,整个事情都不会起作用。ppl什么时候才能最终了解到mysql的功能被弃用了将近3年,是吗?别再活在石器时代了……不,你不是在试图学习。任何关于PHP和MySQL的最新书籍都不会教你如何使用
MySQL.*
函数。任何老师都是如此。这些功能已“停止使用”近3年。如果你真的在学习,找一个合适的资源,比如php.net。如果你真的想学习,你的评论是:你能告诉我应该用什么来代替吗?你能解释一下如何正确地做吗?这里的任何一位体面的会员,包括我在内,都会很乐意帮你解决这个问题!因为这是正确的心态!如果您正在尝试学习,请不要使用
mysql.*
函数。尝试
mysqli.*
PDO
。当你只能驾驶太空船时,你正在学习驾驶马车。@BrentDalling这仍然不是使用
mysql.*
函数的借口。只要不使用任何准备好的语句,
mysqli_*
pdo
都像旧的
mysql_*
一样容易受到SQL注入的攻击。