Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新时出现PHP语法错误_Php_Mysql - Fatal编程技术网

更新时出现PHP语法错误

更新时出现PHP语法错误,php,mysql,Php,Mysql,嘿,伙计们,我的更新表一直出错,这让我发疯。我不知道它在哪里?任何帮助都将不胜感激 <?php include 'connect.php'; ?> <form action = 'updateclient.php' method= 'post'> Select an ID: <input type="text" name="id"><br> Update Name: <input type="text" name="name"><

嘿,伙计们,我的更新表一直出错,这让我发疯。我不知道它在哪里?任何帮助都将不胜感激

<?php
include 'connect.php';
?>
<form action = 'updateclient.php' method= 'post'>

Select an ID: <input type="text" name="id"><br>
Update Name: <input type="text" name="name"><br>
Update Phone: <input type= "text" name ="phone"><br>
Update Email: <input typer = "text" name="email"><br>

<input type="submit" value="Submit">
</form>
<?php

$sql = "UPDATE Client SET name ='".$_POST['name']."',phone='".$_POST['phone']."',email ='".$_POST['email']."'" ;
$sql.= "WHERE ID = '"$_POST['id']"'";

$result = @mysqli_query($connect,$sql);
?>

选择一个ID:
更新名称:
更新电话:
更新电子邮件:
应该是

$sql.= "WHERE ID = '" . $_POST['id'] . "'";

正如其他人所说,这是完全不安全的。仔细阅读SQL注入。

您真的应该在错误消息的文本中包含错误信息。帮助我们帮助你

但让我大胆猜测一下。打印出
$sql
变量。我想您会发现,
WHERE
前面没有空格字符,这可能会导致SQL语句解析失败。在
前面的
位置添加一个空格,它可能会起作用


请注意,@chris85是1000%正确,此代码是不安全的,SQL注入可能会杀死您的数据库。

不要使用
@
并提问。检查错误。此代码对于SQL注入非常开放。请发布显示的错误。正如@chris85所提到的,您的代码有问题,并且缺乏错误调试/捕获机制。此外,这个问题发生了什么,您停止了回答…@chris85我确实在更新2时做出了回应。我使用隐藏框作为代理值0。就在那里,先生。在更新2上你说了
Ahhhhh,明白了。我懂了。是的,这很有效。
soo答案有效,但你不接受吗?后来你们又问了我另外一个问题,我又问了两次,你们没有回答。谢谢你们。这是一个数据库101课程的小项目,所以我知道注入,我也在存储图像块,所以不是100%的安全性,但感谢您指出漏洞,当我有更多的时间时,我将在PHP网站上查看,以帮助保护数据等。
$sql.= "WHERE ID = '" . $_POST['id'] . "'";