数据库连接不工作
<?
$test1 = mysql_connect("localhost","username","pass");
if (!$test1)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $test1);
$letter = $_SERVER[REQUEST_URI];
$letter1 = substr($letter,6);
$query = "SELECT * FROM letter WHERE username='" . $letter1 . "'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
?>
<style type="text/css">
body {
background-image: url('<? echo $row["backpic"]; ?>');
background-attachment:fixed;
margin-bottom:36px;
}
</style>
这是我从mysql数据库中检索字段并将该字段设置为背景图像(该字段包含url)的代码。数据库连接不工作
出于某种原因,此代码不起作用。我已经检查了所有的值,并且它们应该是正确的,因为这个完全相同的代码存在于另一个文件中,并且它完美地工作在那里。
请帮忙!
没有生成错误。顺便说一下,在所有这些之前有一行代码:include(“connectval.php”);
那里有那个文件有相同的代码,但不同的变量名和子串部分不在那里。我不认为这会干扰这段代码。
如果此代码在不同的文件中工作,但不是这一个,它可能是路径问题 - 数据库中的URL是完全限定还是相对的?
生成的HTML看起来像什么? 究竟是在数据库中?
步骤我跟着调试此:
(?!我用“它不工作”你的意思是你看不到的背景图像假设如果是这样,你应该明确)
- 倒退 - 浏览器未显示图像。为什么?
- 浏览器使用图像URL加载图像 - 它在页面源中是否正确?
- 如果URL是正确的,请将其复制/粘贴到地址栏中 - 图像是否加载?
- 如果不正确,请查看数据库中的内容并找出需要采取的措施以纠正它。
我的猜测是,在数据库URL的形式为:/Images/Image.jpg
其工作正常时,PHP是沿着Images
文件夹,但错了来自不同的文件夹加载时 - 尝试使他们完全合格的(http://www.example.com/Images/Image.jpg
)。如果您无法更改数据库,请使用代码自行添加http://www.example.com
。
编辑:
至于建议由贾里德Farrish在OP评论:
尝试打印出来$query
。将字符串复制/粘贴到MySQL Workbench或phpMyAdmin - 您是否看到正确的结果?
数据库包含用户值,如电子邮件,姓名,个人资料图片。 $行[ 'backpic'];应该有配置文件的图片值加载到它是一个图像的网址。其他一切都按照文件中的编码进行。这个文件只有一部分使用这个代码,当试图放在背景图片上时,所有其他的东西都能正常工作。 – DemCodeLines 2012-02-12 02:30:50
你仍然没有回答这个问题:URL是什么样的?除非你能回答,否则我无法帮助你。是[绝对还是相对](http://www.compugoddess.com/relvsabs.htm)?如果右键单击页面并查看源代码,CSS块的外观如何?用答案编辑你的问题 – Basic 2012-02-12 02:33:06
页面是否显示任何东西?或者它只是空白。如果它是空白的,你可能会在服务器配置中关闭PHP错误 - 检查服务器日志和php.ini设置。 – Basic 2012-02-12 02:34:17
您正试图输出不存在的变量$a951168545
。
您已将数据库查询的结果作为数组载入$row
,因此您需要输出$row
的索引。你可能应该在背景图像部分回显出来的是$row['backpic']
。
如果一切都失败,请插入行var_dump($row)
,该行将显示您的$row
变量中正确加载的内容,并指出要显示要查找的值的操作。
我搞砸了代码,而复制和粘贴它在这里,所以我确实有$ row ['backpic'];但它不起作用。 – DemCodeLines 2012-02-12 02:21:25
什么是<? echo $row["backpic"]; ?>
输出?
试试这个:
<?php
// You can enable the report of all PHP errors using ONE of the 3 lines below
ini_set('error_reporting', E_ALL);
//error_reporting(E_ALL);
//error_reporting(-1);
$myhost = "localhost";
$myuser = "myuser";
$mypwd = "mypassword";
$mydb = "mydatabase";
$mysqli = new mysqli($localhost, $myuser, $mypwd, $mydb);
if ($mysqli->error) {
printf("Connection failed: %s\n", $mysqli->error());
exit();
}
$letter = $_SERVER[REQUEST_URI];
$letter1 = $mysqli->real_escape_string(substr($letter,6));
$query = sprintf("SELECT * FROM letter WHERE username = %d", $username);
$result = $mysqli->query($query);
// $row = $result->fetch_array(MYSQLI_NUM); //$row[0]
// $row = $result->fetch_array(MYSQLI_ASSOC); //$row['field']
// $row = $result->fetch_array(MYSQLI_BOTH); //$row['field'], $row['0']
// $row = $result->fetch_assoc(); //$row['field']
$row = $result->fetch_object(); //$row->['field']
/*if($row > 0) :
printf ("<h2>%s (%s)</h2>", $row[0], $row['backpic']);
endif;*/
$result->close();
$mysqli->close();
?>
<style type="text/css">
body {
background-image: url('<?= $row->backpic; ?>');
background-attachment:fixed;
margin-bottom:36px;
}
</style>
的是,从脚本生成什么错误? – 2012-02-12 02:14:51
当我们被告知“它不起作用”时,它总是让我d but不安,但没有提供错误消息/代码/描述来解释*实际错误*。它不起作用;好。发生什么事?你有错误吗? – 2012-02-12 02:16:11
没有产生错误。我甚至试图打印出应该从数据库中提取的字段,并且它不打印出来,而如果我做了类似echo“hello”的东西;它出于某种原因打印出你好$ row ['backpic'];没有任何价值。 – DemCodeLines 2012-02-12 02:20:40