我最近一直在努力让我的新网络应用程序项目上线。我使用典型的 LAMP 堆栈在本地 XAMPP 服务器上运行所有代码。但现在我正在使它生效,我注意到当我的 PHP 代码中有 INSERT 语句时,服务器将始终返回 500 错误。但是当我有一个静态页面或只有一个 SELECT 语句时,它工作得很好。
我已经授予了所有权限,甚至在我的 php/mysql 连接语句中以 root 身份登录,但这没有帮助。
<?php
$conn= new mysqli ('localhost','username','password','ips');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$insert = "INSERT INTO ipaddr (ip) VALUES ($_POST['ip'])"; ?>
<form action="index.php" method="POST" style="visibility: visible;">
<input type="password" name="ip" value=<?php echo($_SERVER['REMOTE_ADDR'])?>/>
这会导致 500 错误,但只有一个 SELECT 语句的类似脚本(就像一个花哨的在线商店)可以正常工作。
编辑:有人向我指出我在脚本中使用了错误的变量名称,但这并没有解决它,所以问题仍然存在
最佳答案
您必须使用下面启动的变量$mysqli
而不是$conn
,
$mysqli = new mysqli ('localhost','username','password','ips');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
我已将您的代码格式化如下,
<?php
$mysqli = new mysqli ('localhost','username','password','ips');
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
if(isset($_POST['ip'])) {
$ip_address = $_POST['ip'];
$insert = "INSERT INTO ipaddr (ip) VALUES ('{$ip_address}')";
}
?>
<form action="index.php" method="POST" style="visibility: visible;">
<input type="password" name="ip" value="<?= $_SERVER['REMOTE_ADDR'] ?>"/>
</form>
关于php - 使用 INSERT 语句时出现 HTTPS 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503813/