首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个编码错误吗?它不能正常工作吗?

这个编码错误吗?它不能正常工作吗?
EN

Stack Overflow用户
提问于 2013-01-30 10:33:42
回答 3查看 76关注 0票数 0

下面的脚本将数据输入到数据库,这将从表单中获取一些信息,然后将它们存储到数据库中。我还使用uplodify上传图像文件并将文件名存储在数据库中,但我的问题是,这个数据处理脚本一直在更新行ID,一个永远不会跳到第二行,我尝试过的每一件事都可以帮助我,或者告诉我我做错了什么。

此外,这将检查ID,如果ID不等于1,则执行插入操作,如果等于,则更新ID,但这不会发生。

ID正在自动递增。

我的脚本

代码语言:javascript
复制
<?php

/**
 * @author SiNUX
 * @copyright 2013
 */

include ('connect.php');

$getId = mysql_query("SELECT ID FROM poiinfo ORDER BY ID DESC LIMIT 1");
$row = mysql_fetch_array($getId);

$poiName = $_REQUEST['Name'];
$poiDes = $_REQUEST['Descrip'];
$poiCon = $_REQUEST['ConInfo'];
//$poiId = $_REQUEST['pID'];

if($row['ID'] != "1"){
    $dbData = "INSERT INTO poiinfo(`Name`, `Des.`, `Contact`) VALUES ('$poiName','$poiDes','$poiCon')";        
    $putData = mysql_query($dbData);

    if ($putData){
        echo "Data inserted";
    }else {
        echo "Not Done";
    }

}else {
    $updLn = "UPDATE `poiinfo` SET `Name`='$poiName',`Des.`='$poiDes',`Contact`='$poiCon'";
    $updDone = mysql_query($updLn);

    if ($updDone){
        echo "Data inserted";
    }else {
        echo "Not Done";
    }
 }       
?>

我尝试过您的建议,但现在仍然是一样的,我的更新代码如下所示。

代码语言:javascript
复制
$updLn = "UPDATE `poiinfo` SET `Name`='$poiName',`Des.`='$poiDes',`Contact`='$poiCon' WHERE `ID`='".$row['ID']."'";

但它仍然继续约会ID 1,而不是继续下一个。

EN

回答 3

Stack Overflow用户

发布于 2013-01-30 10:37:08

更新查询缺少WHERE子句。试试这个:

代码语言:javascript
复制
$updLn = "UPDATE `poiinfo` SET `Name`='$poiName',`Des.`='$poiDes',`Contact`='$poiCon' WHERE ID = '".$row['ID']."'";

也要小心MySQL注射:injection

票数 0
EN

Stack Overflow用户

发布于 2013-01-30 10:37:17

代码语言:javascript
复制
    $updLn = "UPDATE `poiinfo` SET `Name`='$poiName',`Des.`='$poiDes',`Contact`='$poiCon'";

需要此sql中的where子句来指定要更新的记录。目前,它正在更新所有记录。

代码语言:javascript
复制
    $updLn = "UPDATE `poiinfo` SET `Name`='$poiName',`Des.`='$poiDes',`Contact`='$poiCon' WHERE `ID` = ".$row['id']";";

您需要设置一个$id变量才能工作。

票数 0
EN

Stack Overflow用户

发布于 2013-01-30 10:38:19

要检查更新失败的原因,应该在上一个mysql_error子句中调用else

代码语言:javascript
复制
} else {
    echo mysql_error();
}

至于第一个问题:如果您从未插入一个新记录(如果您的代码是这样的话,我看不出这是怎么回事),您将永远不会有ID为2的记录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14601856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档