PHP PDO trong khi tìm nạp

Có một biến bên trong câu lệnh đã chuẩn bị, bạn không bao giờ nên đặt các biến trực tiếp vào câu lệnh, hãy sử dụng trình giữ chỗ và chuyển biến bằng cách sử dụng bindParam

 

Bạn đang ghi đè các biến $query và $row từ bên ngoài vòng lặp, điều này sẽ khiến nó ngừng lặp qua các hàng của truy vấn đầu tiên

 

Khi gọi hàm fetchAll(), bạn nhận được một mảng mà bạn phải lặp qua, nhưng trong mã của bạn, bạn không lặp qua mảng đó, thay vào đó, bạn đã gọi phương thức tìm nạp() chỉ lấy hàng đầu tiên

 

Các câu lệnh đã chuẩn bị chỉ phải được chuẩn bị một lần, việc chuẩn bị nó bên trong vòng lặp là không hiệu quả

 

Tôi đã sửa mã của bạn, bạn nên sử dụng các tên biến mô tả hơn để bạn không ghi đè lên chúng

function cart_display() {
  global $db;

  // Get IP address
  $ip = getIp();

  // Prepare the cart statement
  $cart_query = $db->prepare('SELECT p_id FROM cart WHERE ip_add = :ip');
  $cart_query->bindParam(':ip', $ip);

  // Execute the statement
  $cart_query->execute();

  // Prepare the next statement to be used in the loop
  $product_id = ''; // Initialize variable
  $product_query = $db->prepare("SELECT * FROM product where product_id = :product_id");
  $product_query->bindParam(':product_id', $product_id);

  // Loop through results of the first query and execute the second query
  while($cart = $cart_query->fetch(PDO::FETCH_ASSOC)) {

    // Thanks to the magic of bound parameters
    // $product_id is automatically passed into the query
    $product_id = $cart['p_id'];
    $product->execute();

    // Loop through products
    while($product = $product_query->fetch(PDO::FETCH_ASSOC)) {
      // Print a table row with product values
      echo "
        
{$product['product_name']}
PHP PDO trong khi tìm nạp
1

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

PHP PDO trong khi tìm nạp

các học sinh mới

Đăng ngày 25 tháng 1 năm 2017

các học sinh mới

  • PHP PDO trong khi tìm nạp

  • Các thành viên
    • 9

  • Tác giả

    • Chia sẻ

Đăng ngày 25 tháng 1 năm 2017

trong phần này $product->execute();- tôi gặp lỗi này. Thông báo . biến không xác định. sản phẩm trong C. \xampp\htdocs\hcc\giỏ hàng. php trực tuyến 375

Lỗi nghiêm trọng . Lỗi chưa xử lý. Gọi hàm thành viên exec() trên null trong C. \xampp\htdocs\hcc\giỏ hàng. php. 375 Dấu vết ngăn xếp. #0 độ C. \xampp\htdocs\hcc\giỏ hàng. php(306). cart_display() #1 {main} được đưa vào C. \xampp\htdocs\hcc\giỏ hàng. php trực tuyến 375

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

PHP PDO trong khi tìm nạp

các học sinh mới

Đăng ngày 25 tháng 1 năm 2017

các học sinh mới

  • PHP PDO trong khi tìm nạp

  • Các thành viên
    • 9

  • Tác giả

    • Chia sẻ

Đăng ngày 25 tháng 1 năm 2017

Tôi đã nhận nó. cảm ơn ngài

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

PHP PDO trong khi tìm nạp
PHP PDO trong khi tìm nạp

tiếng anh

Đăng ngày 25 tháng 1 năm 2017

tiếng anh

  • PHP PDO trong khi tìm nạp
    PHP PDO trong khi tìm nạp

  • người điều hành
    • 14. 8k
  • Sở thích. Phát triển phần mềm, trò chơi điện tử
  • Ngôn ngữ. C++, Java, PHP, SQL, Javascript, CSS, HTML

    • Chia sẻ

Đăng ngày 25 tháng 1 năm 2017

Tôi không thường kiểm tra mã khi tôi viết nó cho diễn đàn

 

Tôi hy vọng rằng bạn sẽ hiểu lý thuyết đằng sau nó và học hỏi từ nó. Nếu bạn hiểu nó một cách chính xác, bạn sẽ có thể sửa chữa bất kỳ sai lầm nào tôi đã mắc phải

Làm cách nào để tìm nạp dữ liệu bằng PDO trong PHP?

Tìm nạp dữ liệu từ tập hợp kết quả bằng cách gọi một trong các phương thức tìm nạp sau. .
Để trả về một hàng từ một tập hợp kết quả dưới dạng một mảng hoặc đối tượng, hãy gọi PDOStatement. phương pháp tìm nạp
Để trả về tất cả các hàng từ tập kết quả dưới dạng một mảng các mảng hoặc đối tượng, hãy gọi PDOStatement. phương pháp tìm nạp tất cả

Làm cách nào để lấy giá trị trong hàm fetchAll() trong PHP?

Gọi PDOStatement. phương thức fetchAll, chuyển PDO. Hằng số FETCH_COLUMN làm đối số đầu tiên và cột bạn muốn truy xuất làm đối số thứ hai . Số cột bắt đầu từ 0. Nếu bạn không chỉ định một cột, hãy gọi PDOStatement. tìm nạp tất cả (PDO. FETCH_COLUMN) trả về cột đầu tiên trong hàng.

Cái nào là chế độ tìm nạp dữ liệu mặc định trong PDO?

Theo mặc định, PDO trả về mỗi hàng dưới dạng một mảng được lập chỉ mục theo tên cột và vị trí cột được lập chỉ mục 0 trong hàng .

Làm cách nào để tìm nạp chỉ một bản ghi trong PHP?

Hàm fetch_row() / mysqli_fetch_row() tìm nạp một hàng từ tập kết quả và trả về dưới dạng một mảng liệt kê.