php - INSERT数据成功但没有显示数据

标签 php mysql

我还没有发现我在编码中犯的错误。我尝试插入数据,代码没有显示错误,当我想查看数据时,它显示空白数据 like this for example.我该如何解决这个问题?

<?php
$connect = mysql_connect('localhost','root','');
$database = mysql_select_db('songdb');

$title = $_POST['title'];
$artist = $_POST['artist'];
$genre = $_POST['genre'];
$language = $_POST['language'];
$lyrics = $_POST['lyrics'];

$insert = "INSERT INTO `songs`(`title`,`artist`,`genre`,`language`,`lyrics`) VALUES('$title','$artist','$genre','$language','$lyrics')";

if(!mysql_query($insert)) {
    echo "Error." .mysql_error();
} else {
    header("Location: insert.php?msg=1");
}
?>

最佳答案

首先你必须使用mysqli扩展。因为mysql扩展已被弃用,所以你必须使用准备好的语句来防止sql注入(inject)。

 $connect = mysqli_connect('localhost','root','');
 mysqli_select_db($connect,'songdb');


    $title = $_POST['title'];
    $artist = $_POST['artist'];
    $genre = $_POST['genre'];
    $language = $_POST['language'];
    $lyrics = $_POST['lyrics'];

    //Preapared statement for inserting
    $insert = mysqli_prepare("INSERT INTO songs(title,artist,genre,language,lyrics) VALUES(?,?,?,?,?)");
    mysqli_stmt_bind_param($insert,'sssss', $title,$artist,$genre,$language,$lyrics);

if(!mysqli_stmt_execute($insert)){
echo "Error." .mysqli_error();
}
else { header("Location: insert.php?msg=1"); } ?>

更多信息请参见此处 http://php.net/manual/en/mysqli.prepare.php

关于php - INSERT数据成功但没有显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41542130/

相关文章:

php - 为什么我在引入属性类型提示时突然收到 "Typed property must not be accessed before initialization"错误?

mysql - 将 pandas Dataframe 或 numpy 数组导出到 MySQL

java - SQL 代码的 NullPointerException 错误

mysql - phpmyadmin,mysql - token 不匹配,但我成功创建了一个表

PHP Mysql数据插入

php - 产品创建/更新期间违反 magento 完整性约束

php - 在自定义字段上插入 2 双连接

php - 此 React 应用程序中的实际数据和演示数据不同

batch-file - mysqldump 批处理脚本以输出单个表以进行选择性还原

javascript - 页面刷新后如何保留我的输入