php - MySQL插入查询请求资源

标签 php mysql parameters insert resources

我正在 xampp 上运行以下代码(完美安装)。我已经用 mysqli 替换了 mysql 并重新排列了查询(先连接,稍后插入语句),但一切都无济于事。请帮忙。

错误: 警告:mysql_query() 期望参数 2 为资源,第 19 行 C:\xampp\htdocs\test.php 中给出的字符串

<?php


    $hname = "localhost";
    $username = "root";
    $password = "";
    $db = "test";

    $connect = mysql_connect($hname, $username, $password, $db);


    if ($connect) {
        echo "Connected to Database <br /> <br />";

        $ins = "INSERT INTO 'test'.'testtable' (name) VALUES ('james')";

        //mysql_select_db ($connect, "users");

        if (mysql_query("INSERT INTO 'test'.'testtable' (name) VALUES ('james')", "mysql_connect($hname, $username, $password, $db)")) {
            echo "Values Entered Successfully. Your Account was created";
        } else {
            echo "Your Account was not created";

        }

    }   else {
            echo "Failed to Connect :(";
    }

?>

最佳答案

"mysql_connect($hname, $username, $password, $db)" 不应包含在引号中。您想要调用该函数并将结果作为参数传递,而不是传递字符串。

但是您确实应该将其作为单独的语句调用,以便您可以检查错误:

$con = mysql_connect($hname, $username, $password) or die ("Could not connect to DB: ".mysql_error());
mysql_select_db($db, $con);

mysql_query("INSERT INTO 'test'.'testtable' (name) VALUES ('hunaid')", $con);

代码的另一个问题是 mysql_query 的成功并不表明是否插入了任何行,它只是表明查询在语法上是有效的。您需要调用mysql_affected_rows()来找出插入了多少行。

你真的不应该使用 mysql 扩展,它们已被弃用。您应该使用 mysqli 或 PDO。这将允许您使用准备好的语句,以避免 SQL 注入(inject)问题。

关于php - MySQL插入查询请求资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16032249/

相关文章:

php - Laravel NotFoundHttpException 虽然路由存在

php - Laravel 返回最后一个用户

php - 虽然循环使用单选按钮为许多用户将值插入数据库

php - 我需要帮助找出为什么这段代码不起作用

ios - 修改 Objective-C 函数中的 C 数组

php - 如何修复此错误 : "Undefined variable: sum"?

php - 帮助加快 MySql 查询速度

java - 将参数从方法传递到 main

php - 替换 MySQL 查询结果 PHP 中的字符

python - 如何从 Python 中的存储过程获取输出参数?