2015-11-04 88 views
-1

我对一些PHP和MYSQL代码有问题。php mysql没有结果

<?php 
if(isset($_GET['article_id'])) 
{ 

require('../config.php'); 

$opdracht = "SELECT * FROM app WHERE article_id = " . $article_id; 
$resultaat = mysqli_query($mysqli, $opdracht); 

if($rij = mysqli_fetch_array($resultaat)) 
{ 
?> 

他从一个特定的ID在数据库中保存的信息:

<?php echo $rij['bericht']; ?> 

} else { 

echo "Fout bij ophalen: <br/>"; 
echo $opdracht ."<br/>"; 
echo mysqli_error($mysqli). "<vr/>"; 

通过回声的错误,我得到这样的:

警告:mysqli_error()预计参数1是资源, null给出..而我没有看到东西

更新:

他自动进入else语句。这是我的配置:

<?php // database logingegevens $db_hostname = '****'; $db_username = '****';   $db_password = '****'; $db_database = '*****'; // maak de database-verbinding  $mysql = mysqli_connect($db_hostname, $db_username, $db_password, $db_database); 

怎么了?

朱利安

+0

这就是我们需要知道'config.php'里面的内容。我们不知道您使用哪个API进行连接。基本上,您的查询失败。 –

+0

似乎你发这个''>>>'
' –

+4

错误意味着'$ mysqli'要么从未创建,要么数据库连接失败。 – samlev

回答

-2

你的变量$article_id从未设置(至少在此代码段)。

您应该使用$_GET['article_id'];

$opdracht = "SELECT * FROM app WHERE article_id = " . $_GET['article_id']

你也永远不应该在这样的SQL语句中使用的变量。阅读关于binding variables以防止sql注入。

+2

不,不,他真的不应该。这是打开他的代码到SQL注入。至少,他应该使用绑定参数,并且_never_直接在SQL语句中添加用户指定的参数。 – andrewsi

+0

你是对的。我只是提到$ _GET ['article_id']。不是sql语句的正确方法。 – MitsakosGR

+0

即使它不安全,这个答案在一定程度上是正确的。我们无法知道是否分配了'$ article_id',或者它们的连接文件的内容。顺便说一句,我没有downvote这个。 –