【问题标题】:The correct way to use PHP's mysql_connect functionality?使用 PHP 的 mysql_connect 功能的正确方法是什么?
【发布时间】:2011-04-11 23:38:53
【问题描述】:

我正在创建一个将使用 JQuerys AJAX 功能的注册表单,我正在将数据从表单发送到 PHP 脚本。

下面是 JS 代码,将数据发送到脚本,然后将任何反馈附加到 div,这意味着页面不必刷新:

$.ajax(
{
    url: "public/includes/userCreate.php",
    type: "POST",     
    data: 
    { 
        username: user_username, 
        forename: user_forename,
        surname: user_surname,
        email: user_email01,
        password: user_password01
    }, 
    success: function(html) 
    {             
        $('#web_Content').html(html);
    }      
});

然后我可以使用以下代码将回显内容附加到 web_Content div 中:

<?php
    $new_Username = $_POST['username'];
    $new_Forename = $_POST['forename'];
    $new_Surname = $_POST['surname'];
    $new_Email = $_POST['email'];
    $new_Password = $_POST['password'];

    echo "Username is: " . $new_Username;
    echo "Forename is: " . $new_Forename;
    echo "Surname is: " . $new_Surname;
    echo "Email is: " . $new_Email;
    echo "Password is: " . $new_Password;   
?>

我想将值插入数据库。我将首先使用以下代码测试 MySQL 功能,但它似乎不起作用。

这是不起作用的代码:

mysql_connect("localhost","root","mypass");
mysql_select_db("mydatabase");
mysql_query("INSERT INTO users (user_Username, user_Email, user_Password) VALUES ('TestMan', 'tom@mail.com', 'qwerty' ) ");

这里有什么问题?

【问题讨论】:

  • 当您说“它似乎不起作用”时,您究竟是什么意思?您是否尝试过直接在浏览器中加载您在 ajax 调用中调用的 URL?您是否尝试过将错误处理程序放入您的 ajax 以查看它是否被触发?
  • users 表中的列是否命名为user_Usernameuser_Emailuser_Password?相同的 SQL 在 MySQL Workbench 中是否有效?
  • 定义“似乎不起作用”。
  • 试着把它放在一个单独的页面上,然后直接访问它。你有任何错误吗?
  • 为了记录,永远不要将密码作为明文存储在数据库中。使用某种单向加密。

标签: php javascript jquery mysql database


【解决方案1】:

失败时全部返回 false。您应该检查返回值,如果返回 false,请检查 mysql_error

有这么多可能的原因,你是不是把报错都打开了?

【讨论】:

    【解决方案2】:

    这样检查:

    $host = "localhost";
    $login = "root";
    $pwd = "mypass";
    
    $conn = mysql_connect($host,$login,$pwd);
    if (!Sconn) die("Server not found");
    
    $db = mysql_select_db("mydatabase");
    if (!Sdb) die("Database not found");
    
    $sql = "INSERT INTO ..."; // full query omitted 
    echo("Sending query://$sql//"); // The slashes are to see exactly the query
    
    $query = mysql_query($sql);
    if (!$query) die("SQL error");
    

    然后根据收到的错误信息进行操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-05
      • 2021-10-31
      • 2014-10-04
      • 2021-06-24
      • 2014-03-07
      • 2020-05-26
      • 1970-01-01
      • 2013-12-01
      相关资源
      最近更新 更多