2017-04-04 57 views
-2

即时通讯新的MySql和PHP和即时通讯尝试做一个CRUD,但每次我尝试插入数据到表中称为“studenti”我得到的错误,我没有选择一个数据库,但我选择了mysqli_select_db($ con,“d_base”);我GET“没有数据库选择”错误,即使选择了

有人请帮助我,因为我不明白为什么它不干活的

下面是代码;

$id = $_POST['ID']; 
$nota = $_POST['Nota']; 
$emri = $_POST['Emri']; 
$mbiemri = $_POST['Mbiemri']; 



$servername = "localhost"; 
$dbname = "d_base"; 

// 1.Create connection 
$con = mysqli_connect("localhost","d_base"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    if (!mysqli_query($con,"INSERT INTO studenti (id, nota, emri, mbiemri) VALUES ('$id', '$nota','$emri','$mbiemri')")) 
    { 
    echo("Error description: " . mysqli_error($con)); 
    } 

// Perform queries 
mysqli_select_db($con, "d_base"); 
mysqli_query($con,"INSERT INTO studenti (id, nota, emri, mbiemri) VALUES ('$id', '$nota','$emri','$mbiemri')"); 
mysqli_close($con); 
+0

你选择它后* *第一个查询 –

+2

您的代码很容易受到SQL注入式攻击。您应该使用[mysqli](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)或[PDO](http://php.net/manual/en/pdo.prepared- statement.php)按照[本文]中描述的准备语句(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。 –

+0

连接后必须选择它,而不是在连接后选择的 – clearshot66

回答

0

之前的所有,如果你是一个初学者直行PDO或使用mysqli预处理语句的安全。

下面是您的PHP和HTML表单必须如何工作的例子。

首先,您必须检查是否按下提交按钮,如果其按下的读取值形成$_POST变量形式。

第二件事你必须使用函数mysqli_real_escape_string()逃避注入你的mysql。

之后尝试插入查询并检查错误,如果没有错误查询将被插入成功。

PHP代码

<?php 

// set error report ; 1 = on | 0 = off 
error_reporting(1); 

$db_host = "localhost"; // host 
$db_user = "root";  // database username 
$db_pass = "";   // database password 
$db_name = "d_base"; // database name 

// 1.Create connection 
$con = mysqli_connect($db_host, $db_user, $db_pass, $db_name); 

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

// if form is submited 
if (isset($_POST['submit'])) 
{ 
    // escape post variables 
    $id = mysqli_real_escape_string($con, $_POST['ID']); 
    $nota = mysqli_real_escape_string($con, $_POST['Nota']); 
    $emri = mysqli_real_escape_string($con, $_POST['Emri']); 
    $mbiemri = mysqli_real_escape_string($con, $_POST['Mbiemri']); 

    // make query 
    $query = mysqli_query($con, "INSERT INTO studenti (id, nota, emri, mbiemri VALUES ('$id', '$nota', '$emri', '$mbiemri')") 

    // check for query 
    if (!$query) 
    { 
     echo "Error description: " . mysqli_error($con); 
    } 
    else 
    { 
     echo "Query inserted."; 
    } 

    // close connenction 
    mysqli_close($con); 
} 


?> 

<form action="" method="post"> 
    <input type="text" name="ID" placeholder="Id"><br /> 
    <input type="text" name="Nota" placeholder="Nota"><br /> 
    <input type="text" name="Emri" placeholder="Emri"><br /> 
    <input type="text" name="Mbiemri" placeholder="Mbiemri"><br /> 
    <input type="submit" name="submit" value="Submit form"> 
</form> 
+0

感谢u为解释,我刚开始在几天前与MySQL和PHP 心中已经试过,但现在我得到另一个错误 无法连接到MySQL:拒绝访问用户d_base“ @'localhost'(使用密码:YES) – Bishudkishu

+0

@Bishud可能您正在使用错误的数据连接数据库。您可以在**用户帐户**选项卡中检查您的数据库用户名和密码,在phpmyadmin下,您可以在此图像中看到http://image.prntscr.com/image/361edc80d14b4194aa35f91919375508.jpeg – Mario

+0

这与我看到的是一样的当我打开用户帐户 – Bishudkishu

相关问题