php - 发生错误...未选择数据库

标签 php mysql database

我正在尝试连接到数据库,检查列中的值是否存在,然后根据该值是否存在执行函数。

这是我的代码。

$con = mysql_connect('localhost','root','','users');
$sql = "SELECT * FROM allUsers WHERE username = '".mysql_real_escape_string($_POST["username"]) . "'";
$result = mysql_query($sql,$con) or die("Error occurred in [$sql]: " . mysql_error());
$count = mysql_num_rows($result);

if ($count != 0){
    echo "Username is already taken";
    echo "$count";
    mysql_close($con);
}

else{
    createUser($_POST["name"],$_POST["username"],$_POST["password"],$_POST["email"]);
    }

抛出的错误是:

Error occurred in [SELECT * FROM allUsers WHERE username = 'Admin']: No database selected.

我几乎完全确定它来自 $result 行,但不知道为什么。

我觉得这是一个简单的解决方案,我只是遗漏了一些小问题。

我是 MySQL 的新手(实际上今天是我的第一天),所以请让解决方案尽可能简单。

最佳答案

您忘记调用 mysql_select_db连接后:

$con = mysql_connect('localhost','root','');
mysql_select_db('users', $con);

与 MySQLi 或 PDO 不同,mysql_* 库不将数据库作为连接字符串的参数,但是如果您要迁移到 MySQLi 或 PDO。

MySQLi:

$con = new mysqli('localhost', 'root', '', 'users');

PDO:

$con = new PDO('mysql:host=localhost;dbname=users', 'root', '');

在 MySQLi 中,您的代码将如下所示:

<?php
$host = "localhost";
$user = "root";
$pass = "";
$database = "users";

$con = mysqli_connect($host,$user,$pass,$database);
if($con->connect_error)
    die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());

$stmt = $con->prepare("SELECT * FROM allUsers WHERE username = ? LIMIT 1");
$stmt->bind_param('s',$_POST["username"]);

if (!$stmt->execute())
    die('Failed to excute with error ' . $con->error);

$stmt->store_result();
$count = $stmt->num_rows;
$stmt->close();
if ($count > 0)
{
    echo "Username is already taken.";
}
else
{
    createUser($_POST["name"],$_POST["username"],$_POST["password"],$_POST["email"]);
}

关于php - 发生错误...未选择数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18027430/

相关文章:

database - 从文本文件复制时,PostgreSQL 可以将超出范围的值设置为 null 吗?

MongoDB 减少数据库文件大小

php - 使用 PHP 和 MySQL 开发 'Quiz' Web 应用程序的数据库设计

javascript - woo_add_cart_fee 不起作用

mysql - 使用准备好的语句插入新值并结合选择查询

php - 在 file_get_contents 之后在 php 中调整图像大小

MYSQL 查询时间戳忽略秒

Java MySQL ODBCPreparedStatement 切断查询

php - 使用 php、mysql 在 WordPress 中动态内容

javascript - 尝试使用 AJAX 发送 FormData 时表单数据未通过?