php - 无法使用 mysql 和 php 向表中添加值

标签 php mysql

我的代码有问题。我正在尝试将新帖子添加到表事件中。我很困惑,因为我在同一网站的其他地方使用过这段代码(但它使用 mysqli_query 来注册新用户)。 mysqlql_error 返回“未选择数据库”

这是代码:

<?php
$add_title = $_POST['add_title'];
$add_happen = $_POST['add_happen'];
$add_created = date('Y-m-d');
$add_content = $_POST['add_content'];
$add_author = $_POST['add_author'];

//connect to 
    //localhost
$db_host = "localhost";
$db_username = "root";
$db_password = "";
$db_dbname = "zhp2";
$db_con = mysql_connect($db_host, $db_username, $db_password, $db_dbname); 

$query = "
    INSERT INTO events ( title, happen, created, content, author ) 
    VALUES ( '$add_title', '$add_happen', '$add_created', '$add_content', '$add_author') )
";

$retval = mysql_query($query,  $db_con);
if(! $retval ){
    die('Could not enter data: ' . mysql_error());
}
else{
    echo "Entered data successfully\n";
}

mysql_close($db_con);

//header('Location: ../../index.php?link=events');?>

我尝试使用 mysql_query 和 mysqli_query 的不同组合进行试错法来修复它

最佳答案

你在混淆mysql_connectmysqli_connect以传递这些参数的方式运行。在你的例子中:

$db_con = mysql_connect($db_host, $db_username, $db_password, $db_dbname);  

您正在传递第四个参数,它是数据库名称,但它不会起作用,因为您应该只首先传递三个参数(主机、用户名、密码),然后调用 mysql_select_db() :

$db_con = mysql_connect($db_host, $db_username, $db_password);   
mysql_select_db( $db_dbname, $db_con );

mysqlimysql_ 以来,这是更好的做法功能非常脆弱,并已被弃用 php你可以像这里一样传递四个元素:

$db_con = mysqli_connect($db_host,$db_username, $db_password, $db_dbname) or die("Error " . mysqli_error($link)); 

这与您尝试做的很接近,但在正确的 mysqli_ 中方式。

关于php - 无法使用 mysql 和 php 向表中添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26636521/

相关文章:

php - 密码验证不登录只是重新加载登录页面

php - 如何使用 MySQL 获取最后一行的值?

php - 检查数据中的远期日期

php - CSV 到 Mysql 插入日期时间

php mysql if id 在字段中

mySQL表,主键

php - 我似乎无法在页面上显示我的查询结果?

javascript - 同一变量有 2 个不同属性的条形图 [Chart.Js]

mysql - sql根据2个值连接2个表

php - 从 php 数组中的 mysql 列获取值