-1

我第一次尝试在 PHP 中调用数据库,这个查询导致我的代码中断。请注意,我已经测试了连接是否良好。罪魁祸首是mysql_query()。谁能发现可能出了什么问题?表名称是“users”,“名称”列下的条目是“mvalentine”。据我所知,一切都与大小写相符。

dbInit.php

<?php
$connection = mysql_connect('localhost', 'root', 'password');
$db = mysql_select_db('scaleup');
if ($db) {
    $user = mysql_query("SELECT ID FROM 'users' WHERE 'Name' = 'mvalentine'");
}
else {
die ('Error 01: Connection to database failed.');
}

?>

这个修改后的代码现在正在返回一些东西。ajax 调用中的值“用户”现在返回“假”

返回的值应该是 '1'

阿贾克斯响应:

 <?php
include('dbInit.php');
include('objects.php'); //irrelevant, all code working properly

$layout = new Layout();
$bids = new Bids();
$out = array('layout' => $layout->_board, 'height' => $layout->_height, 'width' => $layout->_width,
                'bids' => $bids->_board, 'maxBids' => $bids- >_maxBids, 'users' => $user);
$out = json_encode($out);
echo $out;
?>
4

3 回答 3

1

if 语句中的“$db”是什么?

要连接到您的数据库,您必须使用“mysql_connect”和“mysql_select_db”。
例如,

<?php
    $connection = mysql_connect('localhost', 'root', 'password');
    $db = mysql_select_db('database_name');
    if($connection)
    {
        if($db)
        {
            //query here
        } else {
            die("Couldn't connect to mysql database ".mysql_error());
        }
    } else {
        die("Couldn't connect to mysql host ".mysql_error());
    }
?>

此外,最好将表名和列名用主要字符括起来,如下所示

mysql_query("SELECT * FROM `tablename` WHERE `column_name` = 'value'");
于 2012-05-29T03:11:49.353 回答
1

我现在无法验证这一点,但我相信您的查询中可能存在语法错误:

mysql_query("SELECT ID FROM 'users' WHERE 'Name' = 'mvalentine'");

列名和表名,如果你想引用它们,应该使用反勾号:

$result = mysql_query("SELECT ID FROM `users` WHERE `Name` = 'mvalentine'");

然后更改其余代码以实际获取用户详细信息:

$result = mysql_query("SELECT ID FROM `users` WHERE `Name` = 'mvalentine'") or die("Query failed");
$row = mysql_fetch_assoc($result);
$user = $row['ID']; 
于 2012-05-29T03:18:27.773 回答
1

您似乎希望 $user 包含用户 ID,但它实际上将包含一个包含所有返回行的资源。为了获取用户 ID,您将需要以下内容:

$result = mysql_query("SELECT ID FROM `users` WHERE `Name` = 'mvalentine'");

if (!$result) {
    die('Invalid query: ' . mysql_error());
} else {
    $row = mysql_fetch_assoc($result);
    $user = $row['ID']; 
}

另外,请注意其他关于样式和 mysqli 和 PDO 对此类事物的偏好的评论和答案。

于 2012-05-29T03:22:14.270 回答