Php 注册系统调用成员函数查询错误

Php 注册系统调用成员函数查询错误,php,html,mysqli,Php,Html,Mysqli,我对使用php和mysqli还是有点陌生,但是在这段代码中,我遇到了几个不同的错误,每次我修复一个错误,就会弹出另一个错误。起初我以为这是因为我使用的是一个过时的系统,但很快就意识到我使用的一些代码实际上是来自一个旧版本。。。我搜索了又搜索,但它给我的唯一问题是使用->出于某种原因,是否有其他选择?或者我只是疯了 我尝试过更新我的服务器,将mysql改为mysqli,将PHP改为当前版本,在web和youtube上搜索,看看其他人是怎么做的,他们遇到了什么错误 if (isset($_POST[

我对使用php和mysqli还是有点陌生,但是在这段代码中,我遇到了几个不同的错误,每次我修复一个错误,就会弹出另一个错误。起初我以为这是因为我使用的是一个过时的系统,但很快就意识到我使用的一些代码实际上是来自一个旧版本。。。我搜索了又搜索,但它给我的唯一问题是使用->出于某种原因,是否有其他选择?或者我只是疯了

我尝试过更新我的服务器,将mysql改为mysqli,将PHP改为当前版本,在web和youtube上搜索,看看其他人是怎么做的,他们遇到了什么错误

if (isset($_POST['submit'])) {
include_once 'dbh.inc.php';
$first = mysqli_real_escape_string($conn, $_POST['first']);
$last = mysqli_real_escape_string($conn, $_POST['last']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$uid = mysqli_real_escape_string($conn, $_POST['uid']);
$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);

$mysqli = new mysqli ('localhost', 'root', '', 'jordansworld');

if( $mysqli ->connect_error ) {
    die( 'Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error );
}

$mysqli = "INSERT INTO user ( first, last, email, uid, pwd ) VALUES ( '{$mysqli->real_escape_string($_POST['first'])}' , ' {$mysqli->real_escape_string($_POST['last'])}' , '{$mysqli->real_escape_string($_POST['email'])}' , '{$mysqli->real_escape_string($_POST['uid'])}' , '{$mysqli->real_escape_string($_POST['pwd'])}'";
$insert = $mysqli->query($mysqli);

if ($insert) {
echo "Success! Row ID: {$mysqli->insert_id}";
} 
else 
{
die("Error: [$mysqli::errno] : [$mysqli::error]");
}
$mysqli->close();
}
/* Error Handlers */
/* Check empty fields */
if(empty($first) || empty($last)|| empty($email)|| empty($uid)|| 
empty($pwd)) 
{
header ("Location: ../signup.php?signup=empty");
exit();
}   
else 
 {
//Insert the user into the database
$mysqli = "INSERT INTO `users` (user_first, user_last, user_email, 
user_uid, user_pwd) VALUES ('$first' '$last', '$email', '$uid', 
'$pwd');";
            mysqli_query($conn, $mysqli);
            header("Location: ../signup.php?signup=success");
            exit();
}
希望它将数据添加到PHPmyadmin。将从数据库中提取数据,例如登录,但不会添加数据

错误消息: 致命错误:未捕获错误:调用C:\xampp\htdocs\myfiles\Visual Studio Code JavaScript\PHP Blog Code\includes\signup.inc.PHP中字符串的成员函数查询:18堆栈跟踪:0{main}在C:\xampp\htdocs\myfiles\Visual Studio Code JavaScript\PHP Blog Code\includes\signup.inc.PHP第18行抛出


您最初将变量$mysqli用于mysqli数据库连接实例化,但后来用表示查询本身的字符串覆盖它:

$mysqli=newmysqli'localhost','root','jordansworld'; $mysqli=插入用户第一个、最后一个、电子邮件、uid、pwd

当然,字符串不包含名为query的方法

要解决此问题,只需将第二个声明替换为一个新的变量名,如$query,然后按如下方式引用inside->query:

$query = "INSERT INTO user ( first, last, email, uid, pwd ) VALUES ( '{$mysqli->real_escape_string($_POST['first'])}' , ' {$mysqli->real_escape_string($_POST['last'])}' , '{$mysqli->real_escape_string($_POST['email'])}' , '{$mysqli->real_escape_string($_POST['uid'])}' , '{$mysqli->real_escape_string($_POST['pwd'])}'";
$insert = $mysqli->query($query);

但是,请注意,mysqli\u real\u escape\u字符串是为了防止SQL注入,而实际上您应该切换到使用。

您正在为$mysqli=INSERT INTO…行上的$mysqli分配一个字符串。。。。尝试使用其他变量,$sql或$query是常用的选择。此外,请使用参数绑定,而不是尝试直接在查询中插入参数。请看,您似乎已经在$conn中有一个连接,可能来自dbh.inc.php,因此我不确定您为什么要用$mysqliOP创建一个新的连接,可能应该只使用$conn,而不是创建多个连接