Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(PHP、MYSQL)结果无法转换为字符串_Php_Mysql - Fatal编程技术网

(PHP、MYSQL)结果无法转换为字符串

(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代码在第111行(php开头的第15行)出现问题,尝试将其更改为int/string,但没有任何效果。 这是密码

<?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]')";