簡體   English   中英

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

[英]Cannot add values to table using mysql and php

我的代碼有問題。 我正在嘗試向表事件添加新的帖子。 我很困惑,因為我在同一網站的其他地方使用了此代碼(但它使用mysqli_query來注冊新用戶)。 mysqql_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_connect() )的第四個參數不是數據庫名稱。 您需要單獨執行此操作,即連接到MySQL服務器。

使用mysql_select_db()函數:

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

當然還有關於SQL注入mysql_*數據, 棄用mysql_*函數的所有強制性警告。

您在傳遞這些參數的方式上使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 );

mysqli中,這樣做是更好的方法,因為mysql_函數非常易受攻擊,並且已從php中棄用,您可以傳遞以下四個元素:

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

這接近於您要嘗試執行的操作,但是以正確的mysqli_方式。

您需要使用mysql_select_db函數選擇要連接的數據庫:

// make $db_dbname the current db
$db_selected = mysql_select_db($db_dbname, $db_con);
if (!$db_selected) {
    die ("Can't use $db_dbname : " . mysql_error());
}

有關更多信息,請參見PHP手冊: http : //php.net/manual/zh/function.mysql-select-db.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM