PDT 脚本不会从数据库中进行选择


pdt script won't select from db

我有产品名称,想选择下载路径。根据它,我得到一个错误

警告:mysql_num_rows(( 期望参数 1 是资源,布尔值在...

就像没有这样的条目一样。

<?php
$keyarray=array('num_cart_items'=>2, 'item_name2'=>'5', 'item_name1'=>'6' );
$itemname='';
for ($i=1; $i<= $keyarray['num_cart_items'] ;$i++){
        $itemname[]= $keyarray['item_name'.$i];};
    foreach($itemname as & $var){  
    echo $var; 
    $sql = mysql_query("SELECT * FROM products WHERE product_name='$var' ");
    $productCount = mysql_num_rows($sql); // count the output amount
    $checkout_path ="";
    if ($productCount > 0) {
        // get path
        $row = mysql_fetch_array($sql);
                 $path = $row["path"];
                 $checkout_path[]=array('path'=>$path);
          echo $checkout_path;
       }
    }
    //echo  $checkout_path;
?>

运行查询后是否出错,请先查看

echo mysql_errno() . ": " . mysql_error() . "'n";

同样关于结果,您可能有多个结果,因此您需要使foreach循环以GRT所有这些结果,例如:

while ($row = mysql_fetch_array($sql)) {
}

另一个注意事项是防止使用mysql_*函数,因为:

此扩展从 PHP 5.5.0 开始已弃用,并将在 未来。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。

在脚本的开头,您已将$itemname='';声明为字符串然后后来将其用作数组$itemname[]= $keyarray['item_name'.$i];};

使用$itemname=array();将其视为数组。

并使用 PDOmysqli ,因为mysql已被弃用,并且在更高版本中不受支持