通过php表单更新SQL表

通过php表单更新SQL表,php,mysqli,Php,Mysqli,查询正在运行,但未发送到SQL server。 我当前的注册脚本 $link = mysqli_connect("$server", "$user", "$pass", "$webdb"); $username = mysqli_real_escape_string($link, (string) $_POST['username']); $displayname = mysqli_real_escape_string($link, (string) $_POST['display_name']

查询正在运行,但未发送到SQL server。 我当前的注册脚本

$link = mysqli_connect("$server", "$user", "$pass", "$webdb");
$username = mysqli_real_escape_string($link, (string) $_POST['username']);
$displayname = mysqli_real_escape_string($link, (string) $_POST['display_name']);
$email = mysqli_real_escape_string($link, (string) $_POST['email']);
$password = sha1((string) $_POST['password']);
$query="INSERT INTO user (`username`, `nicename`, `email`, `password`)
VALUES ('$username', '$displayname', '$email', '$password', '1')";
mysqli_query($link, $query);
mysqli_close($link);
echo $query;
?>
我从查询中收到的输出:

INSERT INTO user (username, nicename, email, password) VALUES ('orion5814', 'Orion5814', 'my@abc.com', '72f2ac484bee398758e769530dd56228d905884d', '1')

我已经检查了所有的链接变量,它们都设置正确,只要有正确的信息,所以我不知道从这里可以走到哪里。对不起,所有的问题;如果您认为它会有所帮助,您可以在doxramos.org上查看。

您的查询可能有错误。
使用mysqli_error()捕捉错误

您的查询可能有错误。
使用mysqli_error()捕捉错误

这个查询有缺陷。您列出了4列
(用户名、昵称、电子邮件、密码)
,但列出了5个值
('orion5814'、'orion5814'、'my@abc.com“,“72f2ac484bee398758e769530dd56228d905884d”,“1”)
如果删除最后一个值,查询应该可以工作

此外,您还可以使用mysqli的面向对象接口简化代码,如下所示:

$username = $link->real_escape_string($_POST['username']);
$link = mysqli_connect("$server", "$user", "$pass", "$webdb") or die( "Error:" . mysqli_connect_error());

mysqli_query($link, $query) or die ("Error:" . mysqli_error($link));


您也不需要显式地将变量转换为字符串,因为如果代码需要,这是自动完成的。

查询有缺陷。您列出了4列
(用户名、昵称、电子邮件、密码)
,但列出了5个值
('orion5814'、'orion5814'、'my@abc.com“,“72f2ac484bee398758e769530dd56228d905884d”,“1”)
如果删除最后一个值,查询应该可以工作

此外,您还可以使用mysqli的面向对象接口简化代码,如下所示:

$username = $link->real_escape_string($_POST['username']);
$link = mysqli_connect("$server", "$user", "$pass", "$webdb") or die( "Error:" . mysqli_connect_error());

mysqli_query($link, $query) or die ("Error:" . mysqli_error($link));


您也不需要显式地将变量转换为字符串,因为这是在代码需要时自动完成的。

正如jordi12100所建议的,在连接到数据库或执行查询时检查错误是一种好做法

您可以这样做:

$username = $link->real_escape_string($_POST['username']);
$link = mysqli_connect("$server", "$user", "$pass", "$webdb") or die( "Error:" . mysqli_connect_error());

mysqli_query($link, $query) or die ("Error:" . mysqli_error($link));
这可以让你知道你做错了什么。
希望这有帮助。

正如jordi12100所建议的,在连接到数据库或执行查询时检查错误是一种很好的做法

您可以这样做:

$username = $link->real_escape_string($_POST['username']);
$link = mysqli_connect("$server", "$user", "$pass", "$webdb") or die( "Error:" . mysqli_connect_error());

mysqli_query($link, $query) or die ("Error:" . mysqli_error($link));
这可以让你知道你做错了什么。
希望这有帮助。

主要帮助;我已经习惯了mysqli,如果有什么东西能给我错误号,那将大有帮助;我已经习惯了mysqli,如果有什么东西能给我错误号,那将大有帮助。你在这一点上是正确的,我也很欣赏你在简化字符串方面的贡献。在我要做的事情清单上;非常感谢你在这一点上是正确的,我也很感谢你在简化字符串方面的意见。在我要做的事情清单上;非常感谢你