【发布时间】:2015-08-12 20:36:48
【问题描述】:
嗨_我正在尝试使用 PDO SELECT 语句从我的数据库中获取单行的值,然后将其从 PHP 文件回显到我的 Javascript 文件中。
如果该值等于1,那么我想创建一个警报,说"The value is 1"。
如果该值不等于1,那么我想创建一个提醒说"The value is not 1"。
我读过其他关于类似问题的帖子,但问题似乎涉及数组,但我只想要一个值。我想我几乎有正确的 Javascript 和 PHP/PDO 代码来执行此操作,但我认为 PDO 有问题。
我选择的行的数据类型是 VARCHAR。
我通过 AJAX POST 将用户 ID(从 Facebook 的 Graph API 检索)发送到 PHP 文件,然后使用 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);
?>
任何有关如何解决此问题的帮助将不胜感激! 提前致谢。
【问题讨论】:
-
首先将
LIMIT 1添加到您的查询中,然后在关闭连接之前写入echo $res->fetchColumn()或将其保存到变量中。查看手册php.net/manual/en/pdostatement.rowcount.phpExample #2。
标签: javascript php mysql ajax pdo