(PHP、MYSQL)结果无法转换为字符串
我的php代码在第111行(php开头的第15行)出现问题,尝试将其更改为int/string,但没有任何效果。 这是密码(PHP、MYSQL)结果无法转换为字符串,php,mysql,Php,Mysql,我的php代码在第111行(php开头的第15行)出现问题,尝试将其更改为int/string,但没有任何效果。 这是密码 <?php if(isset($_POST["submit"])){ $hotel = $_POST["hotel"]; $username = $_SESSION["username"]; $score = $_POST["score"]; $explain= $_POST["explain"]; $hotelid = mysqli_
<?php
if(isset($_POST["submit"])){
$hotel = $_POST["hotel"];
$username = $_SESSION["username"];
$score = $_POST["score"];
$explain= $_POST["explain"];
$hotelid = mysqli_query($con, "select HoteID from hotel where hotelname='$hotel'");
$usernameid = mysqli_query($con, "select UserID from user where UserID='$username'");
$sql = "INSERT INTO user
(description, score, userID, HoteID)
VALUES
('$explain','$score','$usernameid','$hotelid')";
if($con->query($sql)){
header('Location: review.php');
} else {
echo "Error";
}
}
?>
在这里,您使用的是程序方式
$usernameid = mysqli_query($con, "select UserID from user where UserID='$username'");
这里您使用的是面向对象的方式
if($con->query($sql)){
如果你使用的是程序化的方式
改变
if($con->query($sql)){
与
并把下面给出的代码
$result=mysqli_fetch_array($hotelid);
$result1=mysqli_fetch_array($usernameid);
$hotelid=$result['HoteID'];
$usernameid=$result1['UserID'];
之后
请将sql更改为:
$sql = "INSERT INTO user(description, score, userID, HoteID) VALUES('$explain','$score',$usernameid['UserID'],$hotelid['HoteID'])";
您可能正在以数组形式获取usernameid和hotelid。mysqli\u查询返回对象,您无法直接插入它,因此请使用 mysqli_fetch_数组,如下所示
$hotelid = mysqli_fetch_array(mysqli_query($con, "select HoteID from
hotel where hotelname='$hotel'"));
$usernameid = mysqli_fetch_array(mysqli_query($con, "select UserID
from user where UserID='$username'"));
$sql = "INSERT INTO user(description, score, userID, HoteID)
VALUES('$explain','$score','$usernameid[UserID]','$hotelid[HoteID]')";
为什么还要加一个结束语呢?@SambhajiKatrajkar我的错,我忘了添加if(在顶部设置了isset)请你检查一下你的代码并发布正确的代码片段。在
?>
mysqli_query()
返回结果集(即$usernameid
)之前有一个额外的
),您可以尝试直接在$sql
语句中使用它。您需要获取数据才能执行此操作。您粘贴在此处的哪一行会抛出错误?此外,我认为您的查询不安全,可能会受到SQL注入的影响。我在第106行和第107行(hotelid和用户名id)出现了4个错误(!)尖叫:错误抑制被忽略为“和(!)警告:mysqli\u fetch\u array()希望参数1是mysqli\u result,布尔值在C:\…”中给出。请检查变量的值是否正确($hotel,$username)是否为空我尝试回显它们,但它们没有返回任何内容因为变量为空,您将收到警告,因此检查发布的值和会话变量我回显它们,它们输出了我希望它们输出的内容,但我也与我的老师讨论了这个问题,他认为只要我了解PHP的基本原理,错误就可以了和MySql。无论如何,我已经远远领先于我的类(!)尖叫:错误抑制被忽略(!)警告:mysqli_fetch_array()期望参数1是mysqli_result,布尔值用C给出:
$sql = "INSERT INTO user(description, score, userID, HoteID) VALUES('$explain','$score',$usernameid['UserID'],$hotelid['HoteID'])";
$hotelid = mysqli_fetch_array(mysqli_query($con, "select HoteID from
hotel where hotelname='$hotel'"));
$usernameid = mysqli_fetch_array(mysqli_query($con, "select UserID
from user where UserID='$username'"));
$sql = "INSERT INTO user(description, score, userID, HoteID)
VALUES('$explain','$score','$usernameid[UserID]','$hotelid[HoteID]')";