gpt4 book ai didi

php mysql 服务器消失了

转载 作者:行者123 更新时间:2023-11-29 04:43:23 25 4
gpt4 key购买 nike

我正在开发的脚本有问题。我正在 Windows XAMPP 上测试它,我有一个数据库和一个表,我正在尝试插入一行。我正在使用 mysqli 扩展并使用准备语句以防止 sql 注入(inject)。但是当我执行查询时,我得到错误 2006:MySQL 服务器消失了,但服务器运行良好。服务器是我自己的计算机。所以我不知道发生了什么。

这是我使用的代码:

<?php
header('Content-type: text/html; charset=utf-8');
if(isset($_GET['user']) && isset($_GET['pass'])){
$db = new mysqli("localhost", "root", "", "admin");
if ($db->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
if (!($db = $db->prepare("INSERT INTO logins(user,pass,ip,url) VALUES (?,?,?,?)"))) {
echo "Falló la preparación: (" . $mysqli->errno . ") " . $mysqli->error;
}
if (!$db->bind_param('ssss', $_GET['user'], $_GET['pass'],$_SERVER['REMOTE_ADDR'],$_SERVER["HTTP_REFERER"])){
echo "Falló la vinculación de parámetros: (" . $db->errno . ") " . $db->error;
}
if (!$db->execute()) {
echo "Falló la ejecución: (" . $db->errno . ") " . $db->error;
}
$db->close();
}

?>

谢谢

编辑:我忘了说我曾尝试使用 ini_set 技巧,但没有成功

最佳答案

我认为问题是 $db = $db->prepare,重新分配 $db 变量可能会导致断开连接。试试这样写:

$db = new mysqli("localhost", "root", "", "admin");
$stmt = $db->prepare("INSERT INTO logins(user,pass,ip,url) VALUES (?,?,?,?)");
$stmt->bind_param('ssss', $_GET['user'], $_GET['pass'],$_SERVER['REMOTE_ADDR'],$_SERVER["HTTP_REFERER"]);
$stmt->execute();
$db->close();

关于php mysql 服务器消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23695856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com