为什么我无法从 MySQL 获得结果?

why can't i get results from MySQL?

我一直在开发一个新网站,我用于 writing/deleting news/blog 条目的脚本由于某种原因不想再工作了,但它仍然可以在另一个网页上工作我制作。

我可以将 news/blog 内容上传到我的数据库,但是当我想让脚本显示数据库的内容以便我可以 select 删除一个条目时,它会给我这条消息: 已弃用: mysql_connect(): mysql 扩展已弃用,将来会被删除:在 /var/www/html/includes/conn.php 中使用 mysqli 或 PDO第 26 行

我知道 Mysql 已被弃用,但是当我尝试将我的脚本更改为 mysqli 时,我的整个脚本停止工作,包括现在可以工作的上传部分...

当我更改脚本时,在以下部分出现错误:

$result=mysqli_query($sql);

$count=mysqli_num_rows($result);

while($rows=mysqli_fetch_array($result)){

mysqli_close();

给我以下错误:

Warning: mysqli_query() expects at least 2 parameters, 1 given in /var/www/html/delete_multiple.php on line 16

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /var/www/html/delete_multiple.php on line 18

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /var/www/html/delete_multiple.php on line 36

Warning: mysqli_close() expects exactly 1 parameter, 0 given in /var/www/html/delete_multiple.php on line 64

上传结果为:更新数据库时出错。这基本上来自脚本的这一部分...

mysqli_query($query) or die ('error updating database'); 

我添加了我的代码,希望有人能帮我找到我哪里出错了...

<?php error_reporting(E_ALL); ini_set('display_errors', 1);
// Get our database connector
require("includes/conn.php");
?>
<?php
if(isset($_POST['delete'])){ // Check delete button is clicked
  foreach($_POST['checkbox'] as $del_id){ // loop only checked items and delete
   $sql = "DELETE FROM blog WHERE id='$del_id'"; 
$result = mysqli_query($sql);
  }
}

?>
<?php
$sql="SELECT * FROM blog ORDER BY ID";
$result=mysqli_query($sql);

$count=mysqli_num_rows($result);
?>

<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Selecteer welke berichten verwijderd of veranderd moeten worden</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Datum</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Nieuwsbericht</strong></td>
</tr>

<?php
while($rows=mysqli_fetch_array($result)){

echo "<div class=\"picture\">";
                    echo "<p>";
?>

<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['date']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['blog']; ?></td>
</tr>

<?php 
     echo "</p>";
                    echo "</div>";
}
?>

<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>

<?php

// Check if delete button active, start this 



mysqli_close();
?>

</table>
</form>
</td>
</tr>
</table>

<a href="blogupload.php" title="Back">Back</a>

<?php
 
// Call our connection file
require("includes/conn.php");
 
$date=$_POST['date'];
$blog=$_POST['blog'];

$query="Insert into blog (date, blog) values ('$date', '$blog')";  

mysqli_query($query) or die ('error updating database'); 


echo "Het nieuws is geupdate met '$date', '$blog'. De pagina zal over 5 seconden terug naar blogupload gaan.";
header('Refresh: 5; url=blogupload.php');
?>

$result=mysqli_query($sql);

mysqli_query() 函数需要一个连接作为第一个参数。 所以这个电话应该看起来更像:

$result=mysqli_query($conn, $sql);

或者,如果您喜欢面向对象编程($mysqli 是连接对象):

$result = $mysqli->query($sql);

您确定您使用的是相同的数据库连接标准吗?我的意思是你确定你正在使用 mysqli_connect() 函数来连接数据库吗?

另一个很大的可能性是您查询的准确性。因为通常当查询错误或按不正确的字段对结果进行排序时,您将得到 null 结果,我相信这就是为什么您的查询不从数据库中获取数据的原因。

希望对您有所帮助。