PHP使用外部值更新MySQL表
我有一个mysql表,它通过php连接到xcode,我试图用这段代码更新一个单元格,但表中没有返回任何内容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
<?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正在通过?
更改为&
并正在工作