【问题标题】:Data is not being inserted in mysql database through php script未通过 php 脚本将数据插入 mysql 数据库
【发布时间】:2014-11-16 17:49:52
【问题描述】:

通过php向mysql数据库插入数据。

<?php

    session_start();

    $username1=$_GET['uname'];
    $pwd1=$_GET['pwd'];


    mysql_connect("localhost","root","")or die("cannot connect to my sql");
    mysql_select_db("webapp")or die("cannot connect database webapp");

    // CHANGE QUERY FOR INSERT
    $sql="INSERT INTO login (uname, pwd) VALUES ('$username1', '$pwd1')";



    //$sql = "INSERT INTO login ".
         //  "(uname,pwd) ".
           //"VALUES ".
           //"('$username1','$pwd1')";


    // EXECUTE QUERY AND GET RESULT IN $RESULT
    $result=mysql_query($sql);

    //THIS TIME WE ARE NOT CHECKING $COUNT
    if($result)
    {
    echo "You have successfully Inserted your new record";
    }
    else
    {
    echo "Operation Failure please re-attempt";
    }

?>

当我执行此脚本时,它不会将值插入数据库.. Database view in XAMPP

【问题讨论】:

  • 您好,来自您的友好社区 SQL 注入
  • 您的错误消息是否触发了?
  • 通过 GET 方法提供用户名/密码字段通常是不好的做法,因为它们在 URL 栏中可见。改用 POST(它没有加密,但至少在 URL 中不可见)
  • @AlienWebguy 想说的是使用 PDO 和准备好的语句而不是 mysql_* 函数。 stackoverflow.com/questions/1457131/php-pdo-prepared-statements
  • ... 或 mysqli 和准备好的语句

标签: php mysql


【解决方案1】:

您的代码似乎完全能够按照您的预期运行。其他用户提到使用 POST 而不是 GET 会更好。我还要补充一点,您应该清理这些输入。

我已在我自己的服务器上复制了您的代码。它工作正常。因此,我建议您重新考虑您没有为 root 用户使用密码 (Connecting to mysql in xampp without password) 的事实。我会仔细检查参考表名称和字段是否正确。我会仔细检查写入数据库的权限,并可能将 php 错误打印到页面....

error_reporting(E_ALL);  ini_set('display_errors', 1);

最后,如果还没有打开 mysql 日志记录,请打开:http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs

检查您的网络服务器日志(取决于您的设置)和服务器日志,看看是否有任何错误输出到日志中。您的代码应该可以工作。

还可以打印出您的查询字符串,看看它是否按预期输出:

print($sql); exit;

我想知道您是否将任何内容打印到屏幕上,或者您是否真的收到“您已成功插入新记录”。当然,这将是出现问题的第一个停靠港。也许 $result 始终为真/包含资源数据,无论插入到 mysql 是否有效。因此,我还将打印出结果资源数组以查看实际返回的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多