为什么我不能从MySQL获得结果?

时间:2016-04-30 17:54:54

标签: php mysql mysqli

我一直在开发一个新的网站,我用来编写/删除新闻/博客条目的脚本由于某些原因不再需要工作,而它仍然适用于我制作的其他网页。

我可以将新闻/博客内容上传到我的数据库,但是当我想让脚本显示数据库的内容以便我可以选择要删除的条目时,它会给我这样的消息:不推荐使用:mysql_connect():不推荐使用mysql扩展,将来会删除它:在第26行的/var/www/html/includes/conn.php中使用mysqli或PDO

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

当我更改脚本时,它会给我以下部分的错误:

$result=mysqli_query($sql);

$count=mysqli_num_rows($result);

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

mysqli_close();

给我以下错误:

  

警告:mysqli_query()需要至少2个参数,1中给出1   第16行的/var/www/html/delete_multiple.php

     

警告:mysqli_num_rows()期望参数1为mysqli_result,   第18行/var/www/html/delete_multiple.php中给出的null

     

警告:mysqli_fetch_array()期望参数1为mysqli_result,   第36行/var/www/html/delete_multiple.php中给出的null

     

警告:mysqli_close()正好需要1个参数,给出0   第64行的/var/www/html/delete_multiple.php

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

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');
?>

2 个答案:

答案 0 :(得分:1)

<Window.Resources>
    <PropertyPath x:Key="MyPropertyPath">MyProperty</PropertyPath>
</Window.Resources>
...
<TextBox Text="{Binding Path={StaticResource MyPropertyPath}}" />

$result=mysqli_query($sql); 函数需要连接作为第一个参数。 所以这个电话看起来更像是:

mysqli_query()

或者,如果你喜欢面向对象的编程($result=mysqli_query($conn, $sql); 是连接对象):

$mysqli

答案 1 :(得分:0)

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

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

希望它有所帮助。