我正在尝试更新Mysql数据库,并且在Modify.php中收到此错误
“您的SQL语法有误;请查看与您的MySQL服务器版本相对应的手册,以找到在第1行的''附近使用的正确语法”
同样,当按下修改按钮以提交用户所做的修改时,我也被重定向到一个不存在的页面“ http://club-hop.com/modify.php%20method=?inputName=as&inputLine=sdsd&id=3&submit=Modify”
可以在www.club-hop.com上查看有问题的页面
这是代码:
Modify.php
<?php
//edit_data.php
include "db.inc.php";
if(!isset($_POST['submit'])){
$q= "SELECT * FROM people WHERE ID= $_GET[id]";
$result= mysql_query($q);
$person= mysql_fetch_array($result);
}
?>
<h1> You Are Modifying Your Information </h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?> method="post">
clubName<input type="text" name="inputName" value="<?php echo $person['clubName']; ?>" /><br />
clubLine<input type="text" name="inputLine" value="<?php echo $person['clubLine']; ?>" />
<br />
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" />
<input type="submit" name="submit" value="Modify" />
</form>
<?php
if(!isset($_POST['submit'])){
$u= "UPDATE app SET `clubName`='$_POST[inputName]', `clubLine`='$_POST[inputLine]' WHERE ID= $_POST[id]";
mysql_query($u) or die(mysql_error());
echo "User has been modified";
header("Location: index.php");
}
?>
index.php
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table>
<tr>
<td align="center">EDIT DATA</td>
</tr>
<tr>
<td>
<table border="1">
<?
include"db.inc.php";//database connection
$order = "SELECT * FROM app";
$result = mysql_query($order);
while ($row=mysql_fetch_array($result)){
echo ("<tr><td>$row[clubName]</td>");
echo ("<td>$row[clubLine]</td>");
echo ("<td><a href=\"modify.php?id=$row[id]\">Edit</a></td></tr>");
}
?>
</table>
</td>
</tr>
</table>
</body>
</html>
预先感谢您对这个问题的任何挑衅:)
最佳答案
将if(!isset($_POST['submit'])){
更改为if(isset($_POST['submit'])){
(删除“!”)
关闭action
标记的form
属性末尾的引号。
您的参数也应该与字符串包装或隔离,以便正常工作。 SET field='" . $_POST['something'] . "', ...
另外,请勿将参数直接注入查询中,这是SQL Injections的漏洞问题。更多信息在这里:How can I prevent SQL injection in PHP?
附带说明一下,不建议使用mysql_ *函数,请不要使用它们。