php - MySQL 没有正确过滤 SELECT 语句

标签 php mysql ajax

$result->num_rows 在应返回值 29 时返回值 64(所有记录),而 $counter 返回值 0,表明没有记录。我认为这是我准备好的声明的问题,但我不完全确定它可能是什么。

Ajax

$.ajax
({
  url: 'query.php',
  type: 'POST',
  data: {Category: cat},
  //dataType: 'json',  
  success: function(result) 
  {  
    if(result) 
    {   
      console.log(result);          
    }
  },
  error: function() 
  {
    alert("error");
  }      
}); // end ajax call

PHP

<?php
require '_conn/connection.php'; 

$stmt = $conn->prepare("SELECT * FROM portfoliotb WHERE Category = ?");
$stmt->bind_param('s', $cat); 
$cat = $_POST['Category'];
$stmt->execute();

$result = $stmt->get_result();


if ($result->num_rows > 0) 
{
    echo $result->num_rows.",";
} 
else 
{
    echo "0 results";
}

$records = [];
$counter=0;

while( $row = mysql_fetch_row( $result ) )
{
    $counter++;

    //$records[] = array('Id' => $row['Id'], 'Category' => $row['Category'],'Directory' => $row['Directory'],'Description' => $row['Description'],'Code' => $row['Code']);
    //array_push( $records, $row['Category'] );   
    //array_push( $records, array("Id"=>$row['id'],"Category"=>$row['Category'],"Directory"=>$row['Directory'],"Description"=>$row['Description'],"Code"=>$row['Code'])); 
}

echo $counter;
//echo json_encode( $records );

?>

最佳答案

通过删除该行解决了问题

while( $row = mysql_fetch_row( $result ) )

并将其替换为行

while( $row = $result->fetch_assoc() )

感谢您的帮助

关于php - MySQL 没有正确过滤 SELECT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49970458/

相关文章:

mysql - 根据另一个表中的更改自动更新数据库行

mysql - 为什么变量没有被传递?

php - Symfony 2 php.ini 日期.timezone

php - 将数组值从 jquery ajax 传递到 php 函数调用

Php 使用 mysql 查询按类别 ID 获取子类别

mysql - 如何对 MySQL 表列进行子串化

MySQL Select 工作正常,但删除根据 GROUP BY 的位置无限期挂起

php - ajax收到的链接无法点击

javascript - 使用 jQuery.ajax 发送带有数据 :image/png;base64 的 multipart/formdata

php - 即时添加变体并添加到购物车