php - "No database selected"

标签 php mysql sql database

所以我在将数据插入数据库时​​遇到问题。我当前遇到的错误是“未选择数据库”错误,但我看不出问题出在哪里。我的代码是:

<?php

$con=mysqli_connect("localhost","root","","db_test");

// Check connection

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$firstname=$_POST['firstnameReg']; 
$surname=$_POST['surnameReg'];
$mypassword=$_POST['passwordReg']; 
$email=$_POST['emailReg'];


$result= mysql_query("INSERT INTO tbl_customers (firstname, lastname, email, password) VALUES ('$firstname', '$surname', '$email', '$mypassword'");

echo "$firstname", "$surname", "$mypassword", "$email";

if($result)
{
    echo "Success!";
}
else
{
    die(mysql_error());
}

mysqli_close($con);
?>

你能看到任何错误吗?我知道它没有针对 SQL 注入(inject)的保护,它只是一个测试项目。谢谢。

最佳答案

您应该使用 mysqli_query,而不是来自错误库的mysql_query

$result= mysql_query("INSERT INTO tbl_customers (firstname, lastname, email, password) VALUES ('$firstname', '$surname', '$email', '$mypassword'");

因此,在您的情况下,您还缺少 VALUES 中的右括号:

$result = mysqli_query($con, "INSERT INTO tbl_customers (firstname, lastname, email, password) VALUES ('$firstname', '$surname', '$email', '$mypassword')");

趁此机会,您还应该实现准备好的语句以避免 SQL 注入(inject):

$sql = "INSERT INTO tbl_customers (firstname, lastname, email, password) VALUES (?, ?, ?, ?)";
if (!$insert = $con->prepare($sql))
    die('Query failed: (' . $con->errno . ') ' . $con->error);

if (!$insert->bind_param('ssss', $firstname, $surname, $email, $mypassword))
    die('Binding parameters failed: (' . $insert->errno . ') ' . $insert->error);

if (!$insert->execute())
    die('Execute failed: (' . $insert->errno . ') ' . $insert->error);
else
    echo "Success!";

mysqli_close($con);

关于php - "No database selected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178117/

相关文章:

java - 在 Hibernate 中进行分页是否有比执行选择和计数查询更有效的方法?

sql - 如何在 SQL Server 2008 中的存储过程中编写游标

Mysql:获取给定的N条记录子集的n个元素

javascript - php中如何制作登录后欢迎信息的转场效果?

PHP:跳过/删除以###开头的行

PHP 奇怪的 DOCUMENT_ROOT

mysql - 请安装mysql适配器: `gem install activerecord-mysql-adapter` (cannot load such file -- mysql/mysql_api)

php - 检测React PHP客户端是否无法连接到服务器

mysql - 如何更改列并更改默认值?

sql - JOIN PostgreSQL 中的两个表和 GROUP BY