【问题标题】:What is wrong with this PHP/SQL code?这个 PHP/SQL 代码有什么问题?
【发布时间】:2013-09-10 03:30:27
【问题描述】:

所以我没有得到任何 SQL 错误或这段代码的任何内容,它基本上插入到表“nametable”中,它插入 info1 和 info2,但由于某种原因它没有插入,请让我知道出了什么问题,谢谢!

代码:

    <html>
    <body>
    <h1>Insert data</h1>
    <form action="insert.php" method="post">
    Username: <input type="text" name="info1" /><br><br>
    Password: <input type="text" name="info2" /><br><br>

    <input type="submit" />
    </form>
    </body>
    </html>
    <?php
    $con = mysql_connect("my ip","induadmi_main","my pw");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

    mysql_select_db("induadmi_main", $con);

    $sql="INSERT INTO nametable (info1, info2)
    VALUES
    ('$_POST[info1]','$_POST[info2]')";

    if (!mysql_query($sql,$con))
      {
      die('Error: ' . mysql_error());
      }
    echo "1 record added";

    mysql_close($con)
    ?>
    </body>
    </html>

编辑: 原来我确实有一个 SQL 错误 无法连接:无法连接到“我的 IP”上的 MySQL 服务器 (4)

我应该把什么作为我的服务器?我尝试了我的 IP、我的 cpanel 登录用户名、我的数据库名称,都没有工作

谢谢

【问题讨论】:

  • Did, 拒绝用户 'induadmi_main'@'localhost' 的访问(使用密码:YES)
  • 你的代码也有SQL注入漏洞。当这些用户提供的值包含在 SQL 文本中时,您需要使用 mysql_real_escape_string() 函数来包装这些值。此外,不推荐使用 mysql 接口;使用 PDO 或 mysqli 接口进行新开发。
  • @spencer7593 我对 SQL 和 PHP 很陌生,我不知道你说的是什么
  • @Notheir 那条消息说您的用户名或密码错误。
  • @Tim 我刚刚登录正常,我只是将 pw 更改为我正在使用的,只是想知道,它是“localhost”,那么用户名呢?然后是“密码

标签: php html mysql sql sql-server


【解决方案1】:

您应该在 mysql 连接语句中使用变量而不是字符串。错误语句显示它在遇到“我的 IP”时出错,并告诉您问题出在哪里。

如果你将变量传递给你的 mysql_connect 语句,它看起来像:

$con = mysql_connect($host, $username, $password);

假设如下:
$host = 您连接的主机名(很可能是您主机的 IP 地址。
$username = 您要连接的 mysql 实例的用户名。
$password = 您要连接的实例的密码。

另外,如果您正在学习 MySQL 和 PHP,高度建议您学习使用 pdo 或 mysqli 连接方法进行连接。您使用的方法已弃用,今后将不再支持。

在此处阅读有关弃用的警告和连接文档:http://php.net/manual/en/function.mysql-connect.php

【讨论】:

  • 谢谢 TON @chapman84,我现在明白了,应该可以解决了!
  • 没问题,我们都从某个时间点开始。如果答案帮助您尝试接受它作为正确答案。祝你好运!
【解决方案2】:

插入数据

用户名:

密码:

<input type="submit" />
</form>
</body>
</html>
<?php
$con = mysql_connect("my ip","induadmi_main","my pw");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("cis_id", $con);

$sql="INSERT INTO nametable (info1, info2)
VALUES
('".$_POST['fname'] . "','."$_POST['lname']."')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con)
?>
</body>
</html>

【讨论】:

    【解决方案3】:

    如果你的问题是你的ip,你用你使用的端口试过了吗?

    <ip>:<port>
    

    并检查您的目标服务器/机器是否阻止了您的访问

    【讨论】:

      【解决方案4】:
      $con = mysql_connect("localhost","YOUR-USERNAME","YOUR-PASSWORD");
      

      服务器通常是localhost。如果这不起作用,请询问您的托管公司该放什么。

      另外,请查看 mysqliPDO 而不是 mysql,因为 mysql 已贬值。

      完整代码...

      $conn = mysql_connect("localhost", "YOUR-USERNAME", "YOUR-PASSWORD");
      mysql_select_db("YOUR-DATABASE-NAME", $conn);
      

      【讨论】:

        猜你喜欢
        • 2011-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-28
        • 2014-08-12
        • 2015-07-01
        • 1970-01-01
        相关资源
        最近更新 更多