我目前正在学习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();
答案 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)
失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。
所以,做一些像
这样的事情$result= $db->query($sql);
然后检查$ result
中的行