我无法连接到我的数据库。这是我的代码,请您帮帮我。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
define('DB_HOST', 'mysql.hostinger.in');
define('DB_NAME', 'u25*****41_hari');
define('DB_USERNAME', 'u25*****41_hari');
define('DB_PASSWORD', 'hariharan');
$link = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD);
if (!$link) {
die('Could not connect line 9');
}
$DB_SELECT = mysqli_select_db(DB_NAME, $link);
if (!$DB_SELECT) {
die('Could not connect line 15');
}
$valueone = $_POST['Name'];
$valuetwo = $_POST['Username'];
$valuethree = $_POST['Password'];
$valuefour = $_POST['Mobile_Number'];
$sqlone = "INSERT INTO Account (Name) VALUES ('$valueone')";
$sqltwo = "INSERT INTO Account (Username) VALUES ('$valuetwo')";
$sqlthree = "INSERT INTO Account (Password) VALUES ('$valuethree')";
$sqlfour = "INSERT INTO Account (Mobile_Number) VALUES ('$valuefour')";
if (!mysql_query($sqlone) || !mysql_query($sqltwo) || !mysql_query($sqlthree) || !mysql_query($sqlfour) || !mysql_query($sqlfive)) {
die('Could not connect name line 33');
}
mysql_close();
?>
这是我得到的错误:
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /home/u256114841/public_html/login.php on line 17 Could not connect line 15
最佳答案
前言:确保所有表单元素 name
属性匹配 POST
数组,并且您的数据库对数据输入及其长度使用正确的类型。
在 mysqli 中,连接是第一位的。
你有
$DB_SELECT = mysqli_select_db(DB_NAME, $link);
这应该读作
$DB_SELECT = mysqli_select_db($link, DB_NAME);
阅读手册:
但是...您最好一次性使用所有 4 个参数:
$link = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
同时摆脱
$DB_SELECT = mysqli_select_db($link, DB_NAME);
但是,您将 MySQL API 与
mysql_
混合使用。职能。那些不同的 API 不要混杂。
请参阅 Stack 上的以下内容:
您也没有发布您的 HTML 表单以与您的 POST 数组一起使用。
确保您的表单确实使用 POST 方法并且您的输入都具有相同的名称属性。
注意:
$_POST['Name']
与 name="name"
将失败,如果这是您的表单元素的名称并且对于所有其他输入都相同。 这些是区分大小写的。 添加 error reporting到文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// rest of your code
旁注:显示错误应该只在暂存中完成,而不是在生产中。
此外,您的代码容易受到 SQL 注入(inject)的影响。使用准备好的语句。
您不需要像这样使用单独的查询。
只需一次性添加所有列和值。
$sqlone = "INSERT INTO Account (Name, Username, Password, Mobile_Number)
VALUES ('$valueone', '$valuetwo', '$valuethree', '$valuefour')";
使用
mysqli_real_escape_string()
为你所有的值(value)观。IE。:
$valueone = mysqli_real_escape_string($link, $_POST['Name']);
并为其他人做同样的事情。
我还注意到您可能以纯文本形式存储密码。不建议这样做。
使用以下方法之一:
crypt()
bcrypt()
scrypt()
password_hash()
功能。 其他链接:
附加引用:
关于php - 数据库未连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33399607/