mysql select产生的错误

时间:2016-02-05 06:41:35

标签: php mysql

我目前正在学习MySql,但我遇到了这个问题。 以下代码应该只在db表中查询users表中的所有内容。但它返回此错误。 Error: SELECT * FROM users这对我毫无帮助。我能够成功地将项目插入数据库,但我无法从中进行选择。我还试过$sql = "SELECT * FROM ama.users";我的数据库结构

 ama
 |-users

任何帮助都会非常感激。

  $conn = new mysqli($_ENV['OPENSHIFT_MYSQL_DB_HOST'],$_ENV['OPENSHIFT_MYSQL_DB_USERNAME'], $_ENV['OPENSHIFT_MYSQL_DB_PASSWORD'], 'ama');
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$username = "Doe";
$password = "johnexample";
$sql = "SELECT * FROM users";
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

2 个答案:

答案 0 :(得分:5)

来自PHP Manual

mysqli :: query将成功返回对象,并在失败时返回false。

所以你可以在不检查数据类型的情况下使用它(===):

if ($conn->query($sql)) { 
     echo "New record created successfully"; 
} else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
}

为了更好地理解,您可以使用var_dump()并检查您的结果:

var_dump($conn->query($sql));

答案 1 :(得分:1)

Documentation说:

失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。

所以,做一些像

这样的事情
$result= $db->query($sql);

然后检查$ result

中的行