我有一个包含MyPrice,MyStock等列的数据库。 每个产品有几行 - 苹果,桃子等。
我正在尝试使用以下代码提取有关多个项目的价格/库存状态的数据,但我得到的错误如下:
Notice: Undefined variable: sql on line 11
Warning: mysqli::query(): Empty query on line 11
Notice: Undefined variable: prices on line 45
Notice: Trying to get property of non-object on line 45
$dbhost = 'zzz';
$dbuser = 'zzz';
$dbpwd = 'zzz';
$dbname = 'zzz';
$conn = new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );
$res = $conn->query( $sql );
$item1 = "apple";
$item2 = "peach";
$items=array( $item1, $item2 );
$sql='select * from products where `Name` in ("'.implode('","',$items).'");'; //line 11
if( $res ){
$i=0;/* counter for dynamic variables */
$prices=new stdClass;
while( $rs=$res->fetch_object() ){
$i++;
/* Populate an object with details for the product */
$prices->{ strtolower( $rs->name ) }=(object)array( 'price'=>$rs->MyPrice, 'description'=>$rs->MyDescription, 'stock'=>$rs->MyStock );
}
}
?>
echo 'Apple:'.$prices->apple->price . '<br />'; //line 45
echo 'Peach:'.$prices->peach->stock . '<br />';
导致问题的原因是什么?
答案 0 :(得分:2)
我已根据您获得的错误调试了您的代码。 无论如何,信息应该引导你自己解决问题, 特别是如果它们清晰明显的话。 如果您总是让其他人调试您的代码,那么您将无法学到任何东西。
db.collections.aggregate([
{ "$project": { "count": { "$size": "$Documents" } } }
] )
答案 1 :(得分:1)
移动$ res = $ conn-&gt;查询($ sql); 第12行
同时删除结尾 ?&GT; 并在文件末尾放置
答案 2 :(得分:0)
这是你的第一个罪犯:
$sql='select * from products where `Name` in ("'.implode('","',$items).'");';
在尝试将其连接到sql语句之前,你应该破坏$ items。
类似的东西:
$item_text = implode('","',$items);
$sql='select * from products where `Name` in ("'.$item_text.'");';
老实说,这段代码有点混乱。您应该使用PDO或mysql而不是两者都清理它。
答案 3 :(得分:0)
这是一个开始
$dbhost = 'zzz';
$dbuser = 'zzz';
$dbpwd = 'zzz';
$dbname = 'zzz';
$conn = new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );
$item1 = "apple";
$item2 = "peach";
$items=array( $item1, $item2 );
$item_text = implode('","',$items);
$sql='select * from products where `Name` in ("'.$item_text.'");'; //line 11
$res = $conn->query( $sql );
if( $res ){
$i=0;/* counter for dynamic variables */
$prices=new stdClass;
while( $rs=$res->fetch_object() ){
$i++;
/* Populate an object with details for the product */
$prices->{ strtolower( $rs->name ) }=(object)array( 'price'=>$rs->MyPrice, 'description'=>$rs->MyDescription, 'stock'=>$rs->MyStock );
}
}
echo 'Apple:'.$prices->apple->price . '<br />'; //line 45
echo 'Peach:'.$prices->peach->stock . '<br />';
?>