【问题标题】:PHP Mysql why is it doing this? AndroidPHP Mysql 为什么会这样呢?安卓
【发布时间】:2012-07-08 21:16:53
【问题描述】:

所以基本上它会进入并在数据库中找到一个与我输入的单词匹配的单词并吐出一个回复,该回复有效,但它完成了所有其他废话。

http://i.imgur.com/Lh7iZ.png

这是我的 PHP 代码

<?php
    // Connect to database
    mysql_connect("*****", "***", "****");
    mysql_select_db("***");

    // If something is received
    if($_POST)
    {
        if($_POST['action'] == "ask")
        {
            // Filter it to prevent SQL injections
            $text = mysql_real_escape_string($_POST['stringdata']);

            // Search it on the database
            $q = mysql_query("SELECT `reply` FROM `poka` WHERE `word` = '$text' ORDER BY RAND()");

            // Show result
            if($r = mysql_fetch_assoc($q))
                echo $r['reply'];
            else
                echo "Cannot find a reply";
        }
        elseif($_POST['action'] == "teach")
        {
            // Filter it to prevent SQL injections
            $word = mysql_real_escape_string($_POST['word']);
            $answer = mysql_real_escape_string($_POST['answer']);

            // Insert it to the database
            if( mysql_query("INSERT INTO `poka` VALUES(NULL, '$word', '$answer')") )
                echo "ok";
            else
                echo "fail";
        }
    }
?>

【问题讨论】:

  • 为什么会吐出其他东西???你看照片了吗?它应该只吐出“嘿”这个词而不是其他的东西
  • 您能检查一下您的数据库中实际存储的内容吗?
  • 看起来是来自你使用的主机,你的代码没问题,换主机!
  • @ibash 当人们在您的页面中随机注入内容时,我总是讨厌它,特别是如果这是您的虚拟主机的条款和条件之一,如果您花很多钱购买的话,更是如此。 . 哦,等等,没关系。

标签: java php android mysql


【解决方案1】:

您的托管公司会自动将 Google(?) Analytics 代码添加到发送的每个页面。与他们交谈。

【讨论】:

    【解决方案2】:

    如果您想确切了解,请前往http://www.apachefriends.org/en/index.html 并为自己获取一份 XAMPP。

    使用它,您可以快速设置 MYSQL 数据库的本地副本。从当前主机迁移数据库数据以复制已有的设置。

    然后在您的 PHP 中,将其更改为指向新的本地数据库(在“localhost”上)并查看是否得到相同的结果。

    我的怀疑和其他人一样:)

    【讨论】:

      【解决方案3】:

      您能否尝试以下更改,以确保您没有破坏任何字符串。

      echo $r['reply'];
      

      echo "{$r['reply']}";
      

      它的行为方式还是一样吗?

      虽然,上面的答案很可能就是原因。

      这是来自the PHP documentation on how to use arrays in echos的示例:

      // You can also use arrays
      $baz = array("value" => "foo");
      
      echo "this is {$baz['value']} !"; // this is foo !
      

      【讨论】:

      • 这甚至没有回应任何事情
      • 奇怪,它真的应该!请参阅我修改后的答案以获取来源。 :-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      相关资源
      最近更新 更多