无法从数据库中提取结果

时间:2016-06-11 16:57:29

标签: php mysql

到目前为止,我将从我的代码开始。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head>
<?php
include 'dbc.php';
$query = "SELECT art_price, art_header FROM signs WHERE art_number = ?";

if($stmt = $mysqli->prepare($query)){
    $stmt->bind_param('s', $_POST['art_number']);
    $stmt->execute();
    $stmt->bind_result($rowPrice, $rowHeader);


    while($stmt->fetch()){
        ?>


<link rel="stylesheet" type="text/css" href="a4.css">
<page size="A4">
</br>
</br>
<p>art nr: <?php echo $_POST["art_number"] ?> </p>
<div align="center"><img src="<?=$rowPrice?>" width="600" height="600" /></div>
<div align="left" style="margin-left:45px"><font size="12" face="Arial Black, Gadget, sans-serif">$artheader</font></div>
</br>
</br>
<div align="left" style="margin-left:45px"><font size="6" face="Arial, Helvetica, sans-serif"><li>$artpoint1</li></font></div>
<div align="left" style="margin-left:45px"><font size="6" face="Arial, Helvetica, sans-serif"><li>$artpoint2</li></font></div>
<div align="left" style="margin-left:45px"><font size="6" face="Arial, Helvetica, sans-serif"><li>$artpoint3</li></font></div>
<div align="left" style="margin-left:45px"><font size="6" face="Arial, Helvetica, sans-serif"><li>$artpoint4</li></font></div>
<div align="right" style="margin-right:45px"><font color="red" size="146" face="Arial, Helvetica, sans-serif"><h1><?=$rowPrice?> </h1></font></div>
</page>
</html>

<?php
    }

    $stmt->free_result();
    $stmt->close();
}else die("Failed to prepare!");

然后连接到数据库:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Untitled Document</title>
</head>
<?php
$servername = "--";
$username = "--";
$password = "--";

// Create connection
$conn = new mysqli($servername, $username, $password);

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


<body>
</body>
</html>

我正在使用post函数从第一页获取art_number:

<?php
 session_start();
 $_SESSION['art_number'];
?>

<form action="printphp.php" method="post"/>
<input name="art_number" type="text" />
<input type="submit" />

现在我填写帖子字段时得到的就是“连接成功”,我不是程序员,但我通常至少理解它的大部分内容。 我已经走了1000多个谷歌网页但仍然因为某种原因无法使用。 非常感谢帮助我! 因此,您知道,我正在尝试将价格标志系统连接到数据库。

谢谢!

我再次陷入代码:

<?php
include 'dbc.php';
$query = "SELECT art_price, art_header FROM signs WHERE art_number = ?";

if($stmt = $mysqli->prepare($query)){
    $stmt->bind_param('s', $_POST['art_number']);
    $stmt->execute();
    $stmt->bind_result($rowPrice, $rowHeader);


    while($stmt->fetch()){
        ?>

我正在试图获得另一个单独的读数。 我被告知再次绑定结果然后再次执行。 所以我做了:

if($stmt = $mysqli->prepare($query)){
    $stmt->bind_param('s', $_POST['art_number']);
    $stmt->execute();
    $stmt->bind_param('s', $_POST['art_number2']);
    $stmt->execute();
    $stmt->bind_result($rowPrice, $rowHeader);

但是我只得到了第二个结果。

3 个答案:

答案 0 :(得分:0)

您正在尝试准备语句以从$mysqli

获取结果集
$mysqli->prepare($query)

但您的数据库对象名为$conn

$conn = new mysqli($servername, $username, $password);

所以将其改为

$conn->prepare($query)

某些错误报告对您How to get useful error messages in PHP?

非常有用

答案 1 :(得分:0)

嗯,对于初学者,请确保您正在评估PHP变量;这个:<li>$artpoint1</li>应该是这个:<li><?=$artpoint1?></li>以及其余的(假设您在php.ini中启用了short_open_tag)。

另外,正如Marcus在评论中所说,你的新msqli对象应该这样写:

$conn = new mysqli($servername, $username, $password, $db)

您在new mysqli(...)的电话中错过了数据库。

答案 2 :(得分:0)

我自己没有做过很多编程。检查传递给bind_param的值...应该是一个字符串。如果传递单个值,则可以使用不带下划线的bindparam。不知道它是否会有所作为。 “s”用于传递字符串..