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