PHP查询中断

时间:2012-05-29 02:54:03

标签: php mysql

我正试图在PHP中第一次调用数据库,而这个查询导致我的代码中断。请注意,我已经测试了连接是好的。罪魁祸首是mysql_query()。有人能发现可能出错的地方吗?表名为“users”,“Name”列下的条目为“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调用中的'users'值现在返回“false”

返回的值应为'1'

ajax回复:

 <?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;
?>

3 个答案:

答案 0 :(得分: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'");

答案 1 :(得分: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']; 

答案 2 :(得分: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对此类事物的偏好的其他评论和答案。