帮助,无法访问数据库。它无法将我引导到我的数据库,也无法使用mysqlquery进行数据检索。我想系统在我新创建的数据库中找不到?但是托管网站让我没有选择重命名我的数据库
db_connect.php
<?php
include_once 'psl-config.php'; // As functions.php is not included
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
?>
在那里我调用我的用户和数据库。psl_config.php
<?php
define("HOST", "localhost"); // The host you want to connect to.
define("USER", "xxx"); // The database username.
define("PASSWORD", "xxx"); // The database password.
define("DATABASE", "xxx"); // The database name.
define("CAN_REGISTER", "any");
define("DEFAULT_ROLE", "member");
define("SECURE", FALSE);
?>
$name = $_SESSION ['username'];
$result = mysql_query(" select score1 from members where username = '$name'");
用户名说明正确。mysql查询代码第14行是错误所在。
<?php
include_once 'includes/db_connect.php';
include_once 'includes/functions.php';
sec_session_start();
if(!isset($_SESSION['username'])){
header("Location: director.php");
}
$name = $_SESSION ['username'];
$result = mysql_query(" select score1 from members where username = '$name'");
?>
我想系统在我新创建的数据库中找不到?但是托管网站让我没有选择重命名我的数据库
此行:
$result = mysql_query(" select...
应该是
$result = $mysqli->query("select...
并将DB连接传递给查询。
将其用作面向对象的样式,这就是您的数据库连接。
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
您目前正在混合MySQL API。这两个不混在一起。
仅使用mysqli_
。不要在代码或包含的文件中的任何位置包含任何mysql_
函数。所需文件也是如此。
我注意到您正在使用sec_session_start()
。这是我以前见过的功能。请确保它是您包含的文件的一部分,因为我在您发布的代码中没有看到任何其他提及它的内容。
CCD_ 4对CCD_
将exit;
放在您的头之后,否则您的代码将继续运行:
header("Location: director.php");
exit;
- 您当前的代码对SQL注入是开放的。使用准备好的语句
以下是使用参数化方法的示例:
$name = $_SESSION ['username'];
$stmt = $mysqli->prepare("select score1 from members where username = ?");
$stmt->bind_param('s', $name);
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
另一个例子:
if($statement=$mysqli->prepare("select score1 from members where username = ?")){
$name = $_SESSION ['username'];
$statement-> bind_param("s", $name);
// Execute
$statement-> execute();
// Bind results
$statement-> bind_result($name);
// Fetch value
while ( $statement-> fetch() ) {
echo $name . "<br>";
}
// Close statement
$statement-> close();
}
// Close entire connection
$mysqli-> close();
不能混合使用mysqli
和mysql
。我强烈建议使用mysqli
(带I),因为mysql
正在被弃用。此外,它与PostgreSQL兼容,自从Oracle接管Sun Microsystems以来,我们中的许多人都在改用PostgreSQL。