繁体   English   中英

将整数转换为字符串不起作用

[英]Converting an integer to a string doesn't work

我有一个小问题...而且我到处都在寻找如何将整数转换为字符串。 我找到了几种方法,但没有成功。 所以现在我不知道可能是什么问题。 我以为我应该问你其他人是否也有和我一样的问题。

所以什么不起作用:

$inputname = rand(1, 10000);
    $inputname = "$inputname";
    echo '
        <h3>Translate to English</h3>
        <form name="word" method="post" action="">
            <table border="0">
                <tr><td><label>Swedish:</label></td><td width="200"><input type="text" name="swe" maxlength="100" value="'.$swe.'" readonly /></td></tr>
                <tr><td><label>English:</label></td><td width="200"><input type="text" name="'.$inputname.'" maxlength="100" /></td></tr>
                <tr><td></td><td><input type="submit" name="nextword" value="Next Word" /></td></tr>
            </table>
        </form>
    ';

    if (isset($_POST['nextword'])) {
        $eng = $_POST[$inputname];
        $swe = $_POST['swe'];
        $word = $row['id'];
        if($eng == $row['eng']){
            mysql_query("UPDATE `words` SET `right`='yes' WHERE `id`='$word'");
        }
        else{
            mysql_query("UPDATE `words` SET `right`='no' WHERE `id`='$word'");
        }

我没有收到任何错误,但是当我检查数据库时,即使我输入了正确的单词,它也会显示right = no。 如果我使用$ inputname =“ string”将$ inputname更改为字符串; 它起作用了...那么转换为什么不起作用呢?

我试过了(string)$ var,$ var =“ $ var”,mysql_real_escape_string($ var)但没有成功...

如果您对解决此问题有任何想法,请回复。

尽管我还没有看到变量的内容,但是您遇到了一个逻辑问题:第一次打开页面时,会为英语输入创建带有随机名称的表单。 然后,您提交表单并生成一个新的随机名称,因此这些名称可能永远不会匹配。

例如,您发送一个名为$_POST['1234']的变量,然后查找$_POST[$inputname] ,其中$inputname只是随机生成的。

给您的表单变量指定一个随机名称是一个坏主意,因为在提交表单后接收它并不是那么简单。

除此之外,我认为您的name属性不能以数字开头,但这不是问题的原因。


就像其他人提到的那样,问题似乎不只是整数转换,而是逻辑问题。

也许“穷人的调试会话”可能会阐明该错误:为了更好地了解脚本的现状,请更改mysql_query行以将查询简单地回显到浏览器(即, echo "UPDATE words” SET right ='yes' WHERE id ='$word'";

然后,您将能够看到正在执行的SQL语句(很可能不是您认为的那样),并且应该可以帮助您更清楚地看到错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM