嘿,你们能帮我解决这个问题吗,因为我搞不清楚,这里是错误。
[04-Nov-2018 15:21:52 UTC] PHP Warning: mysqli_connect(): (HY000/1045):
Access denied for user 'freeload_retain'@'vps28004.inmotionhosting.com'
(using password: NO) in /home/freeloadboard/public_html/insert.php on
line 7
[04-Nov-2018 15:21:52 UTC] PHP Warning: mysqli_select_db() expects
parameter 1
to be mysqli, boolean given in /home/freeloadboard/public_html/insert.php
on line 21
[04-Nov-2018 15:21:52 UTC] PHP Warning: mysqli_query() expects parameter
1 to be mysqli, boolean given in
/home/freeloadboard/public_html/insert.php on line 45
节目:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$con = mysqli_connect('##.##.###.##','freeload_retain','');
if(!$con)
{
echo "Not Connected to Server. ";
}
if(!mysqli_select_db($con, 'freeload_retain'))
{
echo "Database Not Selected. ";
}
$Companyname = $_POST['companyname'];
$Username = $_POST['username'];
$Password = $_POST['password'];
$Email = $_POST['email'];
$sql = "INSERT INTO clients (companyname, username, password, email)
VALUES ('$Companyname', '$Username', '$Password', '$Email')";
if(!mysqli_query($con, $sql))
{
echo "Not Inserted. ";
}
else
{
echo "Inserted. ";
}
?>
希望你们能尽快找到答案!另外,我重复这个问题,因为我迫不及待地想再问一个问题,但谢谢你帮我解决这个问题!
要回答您的问题:它不起作用,因为您将列名包装在括号中,请删除这些,它应该会起作用。你也有打字错误。($comapnyname=$\u POST['companyname'];
)应该是$companyname
。
然而,您的代码还有一些其他更大的问题。您正在使用的mysql
函数已被弃用,并已从PHP7中完全删除。
接下来,您应该使用prepared语句
和bind_param
来防止SQL注入,转义字符串无法实现这一点。
这就是使用预准备语句的样子。
// ... Set your database connection variables
/*
* Create the database connection, notice the
* usage of mysqli instead of mysql
*/
$connect = new mysqli($host, $user, $password, $database);
/*
* The query, notice the usage of a question mark
* on the place of the variables to be inserted
*/
$sql = "INSERT INTO client (cname, tname, pname, ename) VALUES (?, ?, ?, ?)";
// Prepare the query using $connect->prepare()
$stmt = $connect->prepare($sql);
// Check if the query was prepared
if(!$stmt) {
// ... Handle your error
}
// Get $_POST variables
$companyname = $_POST['companyname'];
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
if(!$stmt->bind_param('ssss', $companyname, $username, $password, $email)) {
// ... Handle your error
}
if(!$stmt->execute()) {
// ... Handle your error
} else {
echo 'Record inserted.';
}
似乎您正在将密码以明文形式插入数据库,这是一个大问题。你应该把它们切碎。编写两个函数,一个用于散列密码,另一个用于在用户登录时验证密码。
第一个函数将返回密码散列,如果密码正确或不正确,第二个函数将返回TRUE
或FALSE
。
function hashPassword($password) {
return password_hash($password, PASSWORD_DEFAULT);
}
function verifyPassword($password, $hash) {
return password_verify($password, $hash);
}
为什么我会收到此错误消息: 警告:mysqli_free_result()期望参数1mysqli_result,给出布尔值 我的代码是:
我的代码中出现了这个错误,我不知道如何解决它我的代码: 这是一个错误: 警告:mysqli_query()要求参数1为mysqli,资源在C:\xampp\htdocs\limitless\connect_to_mysql中给出。第17行的php 我做错了什么?
问题内容: 我对PHP和MySQL还是很陌生,但是我无法弄清楚这一点。我在论坛周围搜索了所有内容,但没有找到我能理解的答案。我最初使用的是mysql_fetch_assoc(),但我只能搜索数字,并且在搜索字母时也收到错误。我希望我在正确的轨道上。预先感谢您的所有帮助! 问题答案: 当您的结果不是结果(而是“ false”)时,就会发生这种情况。您应该更改此行 对此: 因为“可以解释$变量,而’不
我收到这些错误: 注意:未定义的变量:第11行的login.php链接 警告:mysqli_real_escape_string()要求参数1为mysqli,登录时为null。php第11行 注意:未定义变量:第18行login.php中的链接 警告:mysqli_query()期望参数1是mysqli,在login.php的第18行给出了null 警告:mysql_result() 期望参数 1
问题内容: 我正在尝试构建一个简单的自定义CMS,但出现错误: 警告:mysqli_query()期望参数1为MySQLi,在中为null 为什么会出现此错误?我所有的代码已经是MySQLi,我正在使用两个参数,而不是一个。 问题答案: 如评论中所述,这是一个范围界定问题。具体来说,不在您的功能范围内。 您应该将连接对象作为依赖项传入,例如 如果连接失败或发生错误,我也强烈建议停止执行。这样的东西
这是我的android studio代码: 下面是我的php代码: insert_record.php dataConfig.php