gpt4 book ai didi

php - 使用另一个数据库表中的信息连接到数据库?

转载 作者:行者123 更新时间:2023-11-29 21:56:20 27 4
gpt4 key购买 nike

是否可以使用您已连接的数据库中的表连接到数据库。

这就是我想要的:

我有一个数据库,其中包含名为 regdbhost、regdbuser、regdbname 和 regdbtable 的表。在表中您可以获得连接信息。例如 regdbhost=localhost、regdbuser=用户名、regdbname=数据库名称。

这是我的代码

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

<?php
if(!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] == false)
{
header('Location: index.php');
exit();
}

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=inschrijvingen.csv');

// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');

// output the column headings
fputcsv($output, array('id','Name', 'Email', 'age','tekens'));

// fetch the data
$table = "user";
$query = mysql_query("SELECT regdbhost,regdbuser,regdbpass,regdbname,regdbtable FROM $table");

while($result = mysql_fetch_array($query))
{
$regdbhost = '.$result["regdbhost"].';
$regdbuser = '.$result["regdbuser"].';
$regdbpass = '.$result["regdbpass"].';
$regdbname = '.$result["regdbname"].';
$regdbtable = '.$result["regdbtable"].';
$link = mysql_connect($regdbhost, $regdbuser, $regdbpass);
mysql_set_charset('utf8',$link);
mysql_select_db($regdbname);
$rows = mysql_query('SELECT * FROM $regdbtable');
}
// loop over the rows, outputting them
while ($row = mysql_fetch_assoc($rows))
fputcsv($output, $row);

?>

我尝试像这样连接它,但没有成功。我做错了什么?

好的,我修好了。

我改变了这个:

$rows = mysql_query('SELECT * FROM $regdbtable');

$rows = mysql_query("SELECT * FROM $regdbtable");

最佳答案

正如其他人提到的,MySQL 扩展已被弃用,您应该停止使用它。更多信息Why shouldn't I use mysql_* functions in PHP?

至于您的代码,它不起作用的问题在于:

$regdbhost = '.$result["regdbhost"].';
$regdbuser = '.$result["regdbuser"].';
$regdbpass = '.$result["regdbpass"].';
$regdbname = '.$result["regdbname"].';
$regdbtable = '.$result["regdbtable"].';

这里:

$rows = mysql_query('SELECT * FROM $regdbtable');

单引号内的变量不会扩展,因此 $regdbhost 的值将是 .$result["regdbhost"].,而不是实际包含的内容在$result["regdbhost"]中。

此外,您尝试将值连接到字符串的方式也是错误的。您不在引号内进行连接,而是在引号外进行连接:

$myVar = '你好,' 。 $名称。 '!';

但是,在您的情况下,您不需要任何串联,因为您可以直接分配值:

$regdbhost = $result["regdbhost"];

因此,如果您修正处理 $result 内容的方式,并在以下 SELECT 语句中切换到双引号,您的代码基本上应该可以工作。

除了了解为什么应该切换到其他数据库扩展之外,我还建议您查看 How can I prevent SQL-injection in PHP?如果您计划在查询中使用用户输入。

关于php - 使用另一个数据库表中的信息连接到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33127195/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com