2013-01-09 36 views
2

这是我的简单查询,即使它未执行, my $ total是3;无法在Mysqli中获取结果[未定义偏移量]

$pnc = array(); 

$pnc[] = ('318','259','789'); 

$total = count($pnc); 

for($p=0;$p<$total;$p++) 
{ 
    echo $query = "select `id` from `patents` where `number`=?"; 
    $stmt = $mysqli->prepare($query) or $mysqli->error ; 
    $stmt->bind_param("s",$pnc[$p]); 
    $stmt->execute(); 
    $stmt->bind_result($id); 
    $stmt->fetch(); 
    echo $id; 
} 

当我呼应查询我得到

select `id` from `patents` where `number`='318' 

,当我运行在phpMyAdmin其获得“id”值此查询,但在这里它是无法获得ID,

这是问题发生,由于未定义的偏移量bind_param("s",$pnc[$p]);即使我正在获取数组的每个元素的值。请致电 谢谢。

回答

2

Change -

$pnc = array(); 
$pnc[] = ('318','259','789'); 
$total = count($pnc); 

TO

$pnc = array('318', '259', '789'); 
echo $total = count($pnc); 

错误在你的代码 - >Error

+0

存在阵列没有问题的值被正在添加goog当我的var_dump()的阵列,但是当我传递这个数组值以结合值I是没有得到甚至错误,看起来像一切工作正常,但没有结果。 – Afsar

+1

感谢值也必须更改为代码页转换UTF -8 – Afsar

0

我的猜测被关error_reporting了,因为

$pnc[] = ('318','259','789'); 
$total = count($pnc); 

给我一个语法错误(PHP 5.4.7)。

尝试这两条线改变为:

$pnc = array('318','259','789'); 
$total = count($pnc); 
+0

谢谢,是的,我已经改变了,它显示3作为一个计数,但即使我无法从表中获取值,我已宣布error_reporting( E_ALL);在顶部, – Afsar