Вставьте результаты запроса в «Исправляемую фатальную ошибку: объект класса mysqli не может быть преобразован в строку в» - PullRequest
0 голосов
/ 13 октября 2018

После нажатия кнопки отправки запись не сохраняется.Весь синтаксис у меня просматривается, все выглядит нормально.Где вещь останавливает это, чтобы вставить?Почти все рекомендации, которые я просматриваю, заключаются в том, что оператор select, но теперь я вставляю оператор, и возникает та же проблема.

Вот мой код:

<table border='1'>
            <tr>
                <th colspan="2">
                    <h1>Property For Rent</h1>
                </th>
            <form method="post">
                <tr><td>Property NO:</td><td><input type="textbox" name="pid"></td></tr>
                <tr><td>Street:</td><td><input type="textbox" name="street"></td></tr>
                <tr><td>City:</td><td><input type="textbox" name="city"></td></tr>
                <tr><td>Post Code:</td><td><input type="textbox" name="postcode"></td></tr>
                <tr><td>Type:</td><td><input type="textbox" name="type"></td></tr>
                <tr><td>Rooms:</td><td><input type="textbox" name="rooms"></td></tr>
                <tr><td>Rent:</td><td><input type="textbox" name="rent"></td></tr>
                <tr><td>Owner No:</td><td><select name="ownerno">
                            <?php 
                                $conon=mysqli_connect('localhost','root','','dreamhome');
                                $SQLon="select distinct ownerNo from propertyforrent";
                                $queryresulton = mysqli_query($conon,$SQLon);
                                while($resulton=mysqli_fetch_array($queryresulton))
                                {
                                    echo '<option value=" '.$resulton['ownerNo'].' ">'.$resulton['ownerNo'].'</option>';
                                }
                                ?>
                            </td></tr>
                <tr><td>Staff No:</td><td><select name="staffno">
                            <?php 
                                $consn=mysqli_connect('localhost','root','','dreamhome');
                                $SQLsn="select distinct staffNo from propertyforrent";
                                $queryresultsn = mysqli_query($consn,$SQLsn);
                                while($resultsn=mysqli_fetch_array($queryresultsn))
                                {
                                    echo '<option value=" '.$resultsn['staffNo'].' ">'.$resultsn['staffNo'].'</option>';
                                }
                                ?>
                            </td></tr>
                <tr><td>Branch No:</td><td><select name="branchno">
                            <?php 
                                $conbn=mysqli_connect('localhost','root','','dreamhome');
                                $SQLbn="select distinct branchNo from propertyforrent";
                                $queryresultbn = mysqli_query($conbn,$SQLbn);
                                while($resultbn=mysqli_fetch_array($queryresultbn))
                                {
                                    echo '<option value=" '.$resultbn['branchNo'].' ">'.$resultbn['branchNo'].'</option>';
                                }
                                ?>
                            </td></tr>
                <td><input type="Submit" name="submit">

                            </td>
            </form>
        </table>
                    <?php
                    if(isset($_POST['submit']))
                    {
                        if((!empty($_POST['pid']))&&(!empty($_POST['street']))&&(!empty($_POST['city']))
                        &&(!empty($_POST['postcode']))&&(!empty($_POST['type']))&&(!empty($_POST['rooms']))&&(!empty($_POST['rent']))
                        &&(!empty($_POST['ownerno']))&&(!empty($_POST['staffno']))&&(!empty($_POST['branchno'])))
                        {
                            $conad=mysqli_connect('localhost','root','','dreamhome');
                            if(!$conad)
                            {
                                    echo 'Note connected to server';
                            } 

                            if(!mysqli_select_db($conad,'dreamhome'))
                            {
                                echo 'Database Not Selected';
                            }

                            $pid=mysqli_real_escape_string($conad,$_POST['pid']);
                            $street=mysqli_real_escape_string($conad,$_POST['street']);
                            $city=mysqli_real_escape_string($conad,$_POST['city']);
                            $postcode=mysqli_real_escape_string($conad,$_POST['postcode']);
                            $type=mysqli_real_escape_string($conad,$_POST['type']);
                            $rooms=mysqli_real_escape_string($conad,$_POST['rooms']);
                            $rent=mysqli_real_escape_string($conad,$_POST['rent']);
                            $ownerno=mysqli_real_escape_string($conad,$_POST['ownerno']);
                            $staffno=mysqli_real_escape_string($conad,$_POST['staffno']);
                            $branchno=mysqli_real_escape_string($conad,$_POST['branchno']);

                            $SQLad= "INSERT INTO propertyforrent (propertyNo,street,city,postcode,type,rooms,rent,ownerNo,staffNo,branchNo)
                                    VALUES ('$pid','$street','$city','$postcode','$type','$rooms','$rent','$ownerno','$staffno','$branchno')";
                            $resultad=mysqli_query($conad,$SQLad);

                            if(!$resultad)
                            {
                                echo "record not save!,mysqli_error($conad)"; **<-- here the error mentioned occur**
                            }
                            else
                            {
                                echo "record save!";
                            }
                        }
                        else
                        {
                            echo "<h1>Please fill up all field!</h1>";
                        }


                    }
                    ?>

Ошибка, вызванная mysqli_erroris

Исправимая фатальная ошибка: объект класса mysqli не может быть преобразован в строку в

Я новичок в PHP и HTML, я начал два месяца назад.

1 Ответ

0 голосов
/ 13 октября 2018

Вы не правильно звоните mysqli_error(), чтобы показать сообщение об ошибке.Внутри строк в двойных кавычках переменные заменяются, но функции не вызываются.Поэтому, когда вы пишете:

echo "record not save!,mysqli_error($conad)";

, он пытается заменить переменную $conad ее значением.Но это может быть сделано только тогда, когда значением является строка или число, вы не можете поместить соединение MySQLI в строку.

Вам нужно вызвать функцию вне строки и объединить ее.

echo "record not save! " . mysqli_error($conad);

или укажите несколько аргументов для echo:

echo "record not save! ", mysqli_error($conad);

Причина, по которой ваш запрос INSERT не работает, заключается в том, что в ваших опциях есть дополнительные пробелы в атрибутах value.

echo '<option value=" '.$resulton['ownerNo'].' ">'.$resulton['ownerNo'].'</option>';

имеет пробел после символа ", поэтому он создает

<option value=" CO40 ">

вместо

<option value="CO40">

Измените его на:

echo '<option value="'.$resulton['ownerNo'].'">'.$resulton['ownerNo'].'</option>';

и аналогично для всех остальных строк, создающих параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...