PHP函数不';行不通

PHP函数不';行不通,php,mysql,function,mysqli,Php,Mysql,Function,Mysqli,我正在将所有代码转换为mysqli而不是mysql。这些页面似乎正在正确地执行查询和插入操作。但是,我无法让函数工作。基于我看过的几个站点以及这个站点,我的语法应该是正确的。此外,在转换到mysqli之前,所有这些都起到了作用 我已经尝试将其直接放在php文件(如index.php)以及单独的文件中(这是我想要的)。我得到了同样的结果。此示例是用于下拉列表的函数 newserviceint.php: <?php include 'php/phpfunctions.php';

我正在将所有代码转换为mysqli而不是mysql。这些页面似乎正在正确地执行查询和插入操作。但是,我无法让函数工作。基于我看过的几个站点以及这个站点,我的语法应该是正确的。此外,在转换到mysqli之前,所有这些都起到了作用

我已经尝试将其直接放在php文件(如index.php)以及单独的文件中(这是我想要的)。我得到了同样的结果。此示例是用于下拉列表的函数

newserviceint.php:

<?php

    include 'php/phpfunctions.php';

    $con = mysqli_connect("mysql01", "jeremy","supersecret", "mycars");

    if (mysqli_connect_errno()) {

        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }

?>

<?php

    $id = $_GET["id"];

    $sql = "    SELECT  vehicles.VehicleID,
                        vehicles.VYear, 
                        vmake.VMake, 
                        vmodel.VModel

                FROM    vehicles 
                        INNER JOIN mycars.vmake ON vehicles.VMakeID = vmake.VMakeID
                        INNER JOIN mycars.vmodel ON vehicles.VModelID = vmodel.VModelID

                WHERE   vehicles.VehicleID = '$id' ";

    $result = mysqli_query($con, $sql);

    while($row = mysqli_fetch_assoc($result)){

        $year       =   $row['VYear'];
        $make       =   $row['VMake'];
        $model      =   $row['VModel'];
        $vid        =   $row['VehicleID'];

    }

?>

<body>

    <div class="container">

        <?php include ("layout/header.php"); ?>

        <?php include ("layout/banner.php"); ?>

        <div class="maininfo">

            <h1>
                New Service Interval
            </h1>

            <div class="profiletable">
                <div class="previous">

                    <form action="php/newserviceintcode.php" method="post">

                        <table style="width:575px">
                            <tr>
                                <th style="width:175px">Vehicle</th>
                                <td style="width:375px"><input type="text" name="vehicle" style="width:40px" value="<?php echo $vid; ?>"> <?php echo $year; ?> <?php echo $make; ?> <?php echo $model; ?></td>
                                <td style="width:25px"></td>
                            </tr>
                            <tr>
                                <th>Service</th>
                                <td><select name="service" style="width:344px"><?php service() ?></select></td>
                                <td><a href="newservice.php"><img src="images/addnew.png" width="33px" height="25px"></a></td>
                            </tr>
                            <tr>
                                <th style="width:175px">Mileage Interval</th>
                                <td style="width:375px"><input type="text" name="miles" style="width:340px"></td>
                                <td></td>
                            </tr>
                            <tr>
                                <th style="width:175px">Time Interval</th>
                                <td style="width:375px"><input type="text" name="time" style="width:340px"></td>
                                <td></td>
                            </tr>
                            <tr>
                                <th style="height: 75px">Notes</th>
                                <td><textarea type="text" name="notes" style="width:340px" rows="4"></textarea></td>
                                <td></td>
                            </tr>

                        </table>

                        <br>

                        <input type="submit" value="Submit">

                    </form>

                </div>
            </div>
            <br>

        </div>

        <?php include ("layout/footer.php"); ?>

    </div>

    <!-- end .container -->
</div>

</body>
</html>

新服务间隔
车辆

函数服务(){
中,第一个参数应该是连接,第二个参数应该是查询字符串

你需要连接

$connection = mysqli_connect("mysql01", "jeremy","supersecret", "mycars");
$qservice = mysqli_query( $connection, 'your query string' ); 
传递连接对象

<?php service($con) ?>

需要至少两个参数。您需要将
$con
对象作为参数传递给
服务()
,例如
函数服务($con){…}
投票以键入结束。您应该在开发过程中增加错误报告。然后您会看到“警告:mysqli_query()至少需要2个参数,给定1个”@Phil,这解释了为什么查询函数不起作用,但是连接函数为什么不起作用呢?我在php顶部的代码中设置了一个函数,但它不起作用-基本上给了我与查询如何不起作用相同的响应。它就像不存在一样。我真的不知道你在说什么,但你知道“你可能遇到了一个问题。
$connection
从何而来?@Phil,他/她不必把它放在那里,我编辑它是为了让它更清晰有趣-这是mysqli的附加要求吗?@Jeremythephnoob是的,mysqli\u查询至少需要2个参数,或者使用面向对象的样式,如
$con->query('query string');
请阅读此处。”
$qservice = mysqli_query( "SELECT VServiceID, Title FROM vservice ORDER BY Title");
$connection = mysqli_connect("mysql01", "jeremy","supersecret", "mycars");
$qservice = mysqli_query( $connection, 'your query string' ); 
<?php service($con) ?>
function service($connection)
{
    $qservice = mysqli_query($connection,  "SELECT VServiceID, Title FROM vservice ORDER BY Title");
    // your remaining code goes here 
}