警告mysql_fetch_array但显示值

时间:2013-12-19 10:30:29

标签: php mysql

这是警告:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/angga/fungsi/fungsi-halaman.php on line 133

第133行是$k = mysql_fetch_array($kata);

function tag($tagi){
$teks = explode(" ",$tagi);
    for($i=0;$i<count($teks);$i++):
    $teks2 = safe($teks[$i]);
    $kata = mysql_query("select * from `tag` where id=$teks2");
    $k = mysql_fetch_array($kata);
    echo "<a href=\"\">".$k['nama']."</a> ";
    endfor;

}

我这样打电话:

tag($post['tag']);

输出是:

test jancuk surem insert null value function ignore varchar 
来自$post['tag']

原始值为1 2 3 4 5 6 7 8 9

我想从$post['tag']转换值并将其显示为我数据库中tag表的名称

我尝试通过添加or die(mysql_error());进行编辑,警告仍未完成。 我添加or die(mysql_error());

时会发出警告
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

我的代码出了什么问题?

编辑1: 通过添加''来解决问题所以现在就像

 $kata = mysql_query("select * from `tag` where id='$teks2'") or die(mysql_error());

答案来自我的问题中的第一条评论,但现在已经消失或编辑了?

这里是safe()

function safe($value){
   return mysql_real_escape_string($value);
} 

3 个答案:

答案 0 :(得分:0)

您的查询可能有语法错误。因此查询不会触发并返回false。而且你得到了这个错误:尝试引用id值:

$kata = mysql_query("select * from `tag` where id='$teks2'");

答案 1 :(得分:0)

在尝试使用之前,您需要检查mysql_query()返回的值。如果查询失败,它将返回布尔值false而不是结果对象。如果发生这种情况,您可以使用mysql_error()检查发生了什么错误。

重要的是要指出您使用的是已弃用的API。您应该使用较新的mysqli函数。

答案 2 :(得分:0)

尝试以下查询:

mysql_query("select * from tag where id=$teks2");