簡體   English   中英

使用PDO從數據庫回顯單行時出錯

[英]Error using PDO to Echo a single row from database

Hi_I我試圖使用PDO SELECT語句從我的數據庫中獲取單行的值,然后將其從PHP文件回送到我的Javascript文件。

如果值等於1那么我想創建一個警告,說"The value is 1" 如果該值不等於1那么我想創建一個警告,說"The value is not 1"

我已經閱讀了有關類似問題的其他帖子,但問題似乎涉及數組,但我只想要一個值。 我想我幾乎有正確的Javascript和PHP / PDO代碼來做這件事,但我認為PDO有問題。

我選擇的行的數據類型是VARCHAR。 我通過AJAX POST向PHP文件發送用戶ID(從Facebook的Graph API檢索),然后使用bindParam准備將其包含在查詢中。

console.log返回此錯誤消息: Warning: log() expects parameter 1 to be double, array given in ../scripts/valuecheck.php on line 29

這是我的Javascript和AJAX POST:

function checkValue() {

FB.login(function(response) {
  if (response.authResponse) {
    console.log('Welcome!  Fetching your information.... ');

     FB.api('/me', function(response) {

     if (response.error) {
       console.log('Error - ' + response.error.message);
     }
     else {
       var userid = response.id;

                            $.ajax({
         url: 'scripts/valuecheck.php',
         data: {'userid' : userid},
        type: "POST",
        success: function(response){
            console.log(response);
                 if(response==1){
                         alert( "The value is 1");
                         }
                    else{
                        alert( "The value is not 1");
                              }
                    }
       });
}
    });
  } else {
    console.log('User cancelled login or did not fully authorize.');
  }
 });
}

這是我的PHP文件:

<?php

$servername = "myservername";
$username = "myusername";
$password = "mypassword";
$dbname = "mydbname";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$stmt = $conn->prepare("SELECT `value` FROM `table1` WHERE `id` = :currentuserid"); 
$stmt->bindParam(':currentuserid', $currentuserid);
$currentuserid = $_POST['userid'];
$stmt->execute(); 

$result = $stmt->fetch(); 
echo $result;
    }

catch(PDOException $e)
{
    echo "Error: " . $e->getMessage();
}
$conn = null;
console.log($result);
?>

如何解決這個問題的任何幫助將不勝感激! 提前致謝。

fetch返回一個數組,其中包含SELECT每列的元素,因此您需要使用:

echo $result['value'];

你正在混合JS和PHP:

catch(PDOException $e)
{
    echo "Error: " . $e->getMessage();
}
$conn = null;
console.log($result);
^^^^^^^^^^^^^^^^^^^---this is javascript, not PHP.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM