未通过php脚本将数据插入mysql数据库

未通过php脚本将数据插入mysql数据库,php,mysql,Php,Mysql,通过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 webap

通过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";
    }

?>

您的代码似乎完全能够按预期运行。其他用户提到使用POST比GET更好。我还要补充一点,您应该对这些输入进行消毒

我已经在自己的服务器上复制了您的代码。它很好用。因此,我建议您重新考虑您没有为根用户()使用密码这一事实。我将再次检查引用表名称和字段是否正确。我会仔细检查写入数据库的权限,并可能将php错误打印到页面上

error_reporting(E_ALL);  ini_set('display_errors', 1);
最后,如果尚未启用mysql日志记录,请启用:

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

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

print($sql); exit;

我想知道你们是否正在屏幕上打印任何东西,或者你们是否真的得到了“你们已经成功地插入了你们的新记录”。当然,这将是第一个出现问题的呼叫端口。也许$result始终为true/包含资源数据,无论是否插入mysql有效。因此,我还将打印出结果资源数组,以查看实际返回的内容。

您好,来自您友好的邻居SQL injectionAre您的错误消息触发?通过GET方法提供用户名/密码字段通常是不好的做法,因为它们在URL栏中可见。改为使用POST(它不是加密的,但至少在URL中不可见)@AlienWebguy想说的是在准备好的语句中使用
PDO
,而不是
mysql.*
函数。。。或mysqli和准备好的语句