我目前正在使用mysql_connect()
,即使不鼓励使用它。我的网络服务不支持PDO
。我目前将我的代码格式化为PDO
,但现在我被迫将其更改为mysяl_connect()
。现在这些更改后,我收到页面错误,没有任何显示。我正在包含一个database_connect.php
正在使用另一个页面而不是我的改编代码。我的代码中导致此错误的问题是什么?这是我的PAGE
代码
include ('./snippets/db_connect.php');
$query = ("SELECT class_name, class_caption, class_credit_hours, class_description
FROM class
");
$query->execute();
if ($query->execute()){
$totalhours = 0;
while ($row = mysql_fetch_assoc( $query )){
print "<b>" . $row['class_name'] . "</b><br>";
print $row['class_caption'] . "<br>";
print $row['class_description'] . "<br>";
print $row ['class_credit_hours'] . "hrs. <br>";
print "------------------------------<br />";
$totalhours += $row['class_credit_hours'];
}
print "<p>Total hours for Major: " . $totalhours . ".</p>";
"<div> </div>"
答案 0 :(得分:1)
$query
是一个字符串,因此没有execute
方法。你永远不会打电话给mysql_query($query)
。所以没有结果集。
$sql = "SELECT class_name, class_caption, class_credit_hours, class_description FROM class"
$result = mysql_query($sql);
if($result) {
while ($row = mysql_fetch_assoc($result)){
/// do stuff
}
}
此外,如果您的主机不支持PDO,您应该切换,即使您不打算使用它。他们没有理由不在此时支持它,它在php 5.1中是标准的,如果不是当前稳定的5.3,你的主机至少应该有php 5.2.17。
现在,如果你知道PDO,你可能想尝试Mysqli
而不是ext/mysql
。它更像是PDO并支持准备好的声明,而不支持。你的主人应该至少拥有它。如果他们不重视改变主机提供商。
答案 1 :(得分:0)
你应该用这个:
$query = "SELECT class_name, class_caption, class_credit_hours, class_description FROM class";
$query = mysql_query($query);
if (!$query) {
die("There is an error: " . mysql_error());
}
//continue your code
答案 2 :(得分:0)
正确的代码应该是:
include ('./snippets/db_connect.php');
$query = ("SELECT class_name, class_caption, class_credit_hours, class_description
FROM class
");
//execute query
$result = mysql_query($query);
if ($result){
$totalhours = 0;
while ($row = mysql_fetch_assoc( $result )){
print "<b>" . $row['class_name'] . "</b><br>";
print $row['class_caption'] . "<br>";
print $row['class_description'] . "<br>";
print $row ['class_credit_hours'] . "hrs. <br>";
print "------------------------------<br />";
$totalhours += $row['class_credit_hours'];
}
print "<p>Total hours for Major: " . $totalhours . ".</p>";
"<div> </div>"
答案 3 :(得分:0)
我真的不明白你是如何生成代码的,但我觉得你很困惑。看起来你混合了几种不同的方法。您还调用了两次execute()。如果你想使用PDO,我想你正试图拍摄这样的东西:
$query = "SELECT class_name, class_caption, class_credit_hours, class_description FROM class";
$stmt = $dbh->prepare($query);
if ($stmt->execute()) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// Do you stuff with your $row
}
}
如果您正在尝试使用mysql_ *(折旧和未定义),我认为您正在尝试执行以下操作:
$query = "SELECT class_name, class_caption, class_credit_hours, class_description FROM class";
$run = mysql_query($query);
if ($run) {
while ($row = mysql_fetch_array(run)){
// Do your stuff with your $row
}
}