我一直在研究PHP MYSQL CRUD(创建读取更新删除)应用程序但是我遇到了update-(edit.php)脚本,错误消息反映在以下行中:if($_POST["do"]=="update")
说明:undefined index 'do'
我收到此错误消息:mysqli_query() expects 2 parameters
返回:$result=mysqli_query($query);
和另一个类似的mysqli_fetch_array() expects parameter 1 to be mysqli_result
,请参阅:while($row=mysqli_fetch_array($result))
我一直试图解决它过去2天我想知道是否有一些额外的眼睛和你的知识可以帮助我指出错误。
<?php
if($_POST["do"]=="update"){
$terminal=$_POST["terminal"];
$acquirer=$_POST["acquirer"];
$acquirer_name=$_POST["acquirer_name"];
$acquirer_agent=$_POST["acquirer_agent"];
$merchant_name=$_POST["merchant_name"];
$multilink_terminal=$_POST["multilink_terminal"];
$country=$_POST["country"];
$parish=$_POST["parish"];
$area=$_POST["area"];
$location=$_POST["location"];
$venue=$_POST["venue"];
$status=$_POST["status"];
$date_online=$_POST["date_online"];
$query="update terminal_ncb_jan_jun set
acquirer='$acquirer',
acquirer_name='$acquirer_name',
acquirer_agent='$acquirer_agent',
merchant_name='$merchant_name',
multilink_terminal='$multilink_terminal',
country='$country',
parish='$parish',
area='$area',
location='$location',
venue='$venue',
status='$status',
date_online='$date_online'
where terminal=$terminal";
mysqli_query($query);
}
$terminal=$_GET["terminal"];
$query="select * from terminal_ncb_jan_jun where terminal='$terminal'";
$result=mysqli_query($query);
while($row=mysqli_fetch_array($result)){
?>
<form name="update" method = "post" action ="edit.php">
<table>
<tr>
<td>Terminal</td>
<td><?php echo $row[0];?><input type="hidden" name="terminal" value="<?php echo $row[0];?>"></td>
<td>Acquirer Name</td>
<td><input type="text" name="acquirer_name" value="<?php echo $row[1];?>" disabled="disabled"></td>
<td>Acquirer Agent</td>
<td><input type="text" name="acquirer_agent" value="<?php echo $row[2];?>"></td>
<td>Merchant Name</td>
<td><input type="text" name="merchant_name" value="<?php echo $row[3];?>"> </td>
<td>MultiLink Terminal</td>
<td><input type="text" name="multilink_terminal" value="<?php echo $row[4];?>"> </td>
<td>Country</td>
<td><input type="text" name="country" value="<?php echo $row[5];?>"></td>
<td>Parish</td>
<td><input type="text" name="parish" value="<?php echo $row[6];?>"></td>
<td>Area</td>
<td><input type="text" name="area" value="<?php echo $row[7];?>"></td>
<td>Location</td>
<td><input type="text" name="location" value="<?php echo $row[8];?>"></td>
<td>Venue</td>
<td><input type="text" name="venue" value="<?php echo $row[9];?>"></td>
<td>Status</td>
<td><input type="text" name="status" value="<?php echo $row[10];?>"></td>
<td>Date Online</td>
<td><input type="text" name="date_online" value="<?php echo $row[11];?>"></td>
</tr>
<tr>
<td><input type="hidden" name ='do' value ='update'><input type='submit' value="UPDATAE RECORD"></td>
</tr>
<?php } ?>
</table>
</form>
</body>
</html>
答案 0 :(得分:0)
第一个问题是$ _POST ['do']没有值,因此不会为你的if实例化。检查它是否正确传递到您的更新页面,并通过简单地在if之前回显它来获得值。解决它。
关于mysql params的第二个问题是你实际上并没有在你的脚本中的任何地方打开你的mysql连接,所以它不能运行mysql_query。
修复问题2也将解决所有其他问题。
最后,因为看起来你刚刚学习不使用mysql_函数使用PDO或者至少使用mysqli和预处理语句。