PHP使用外部值更新MySQL表

PHP使用外部值更新MySQL表,php,mysql,sql-update,Php,Mysql,Sql Update,我有一个mysql表,它通过php连接到xcode,我试图用这段代码更新一个单元格,但表中没有返回任何内容 <?php $conn = mysql_connect($host, $user, $pass); @mysql_select_db($db) or die("Unable to find database"); $routeID = $_GET["routeID"]; $newComment = $_GET["newComment"]; $query = "UPDATE ro

我有一个mysql表,它通过php连接到xcode,我试图用这段代码更新一个单元格,但表中没有返回任何内容

<?php

$conn = mysql_connect($host, $user, $pass);
@mysql_select_db($db) or die("Unable to find database");

$routeID = $_GET["routeID"];
$newComment = $_GET["newComment"];

$query = "UPDATE routes SET comment = '$newComment' WHERE routeID='$routeID'";

mysql_query($query) or die (mysql_error("error"));
mysql_close();
?>

您的查询字符串当前似乎是
newComment=test?routeID=1
,而它应该是
newComment=test&routeID=1
*

因此,PHP将当前查询字符串解析为单个名称
newComment
,其值为
test?routeID=1
,而不是两个名称
newComment
routeID
,其值分别为
test
1

但是,请注意,绝对不能将查询字符串中的值直接连接到SQL中:因此,如果这些值不是预期值,那么这样做可能会导致错误,攻击者可能会利用这些值危害您的数据库。看

还请注意,如以下文件所述:

警告 从PHP5.5.0开始,此扩展已被弃用,将来将被删除。相反,应该使用or扩展名。有关更多信息,请参见指南和。此功能的替代方案包括:

最后,请注意,的(可选)参数是MySQL链接标识符资源,
$conn
,在您的例子中:传递字符串文本,例如
“error”
,将导致其失败


*如下所述,的默认值(被描述为“PHP用于将输入URL解析为变量的分隔符列表”)为
“&
。这与
应用程序/x-www-form-urlencodedMIME类型表示的一致。

您可以获得mysql错误,尝试捕获错误。您可以发布实际运行查询的代码吗?此外,如果
routeID
是一个整数列,则不应在查询中引用该值。代码下面的两段完全无法识别。使用php更新file@eggyal我正在检索
$routeID=$\u GET[“routeID”]
$newComment=$\u GET[“newComment”]来自xcode的值感谢您的解释,xcode正在通过
更改为
&
并正在工作