我正在 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/