使用 PHP 插入 mySQL 但 phpmyadmin 中没有任何显示
Inserting into mySQL with PHP but nothing shows up in phpmyadmin
在尝试插入 mySQL 数据库时,我没有收到任何错误,但 phpmyadmin 查询中没有显示任何内容。这是我尝试插入的 php 文件的代码。我知道这不是最好的方法,但这是我目前所拥有的。
<?php
require 'steamauth/steamauth.php';
require 'php/main.php';
require 'php/db.php';
$title = $_POST["title"];
$desc = $_POST["desc"];
$date = $_POST["date"];
$skills = $_POST["skills"];
$budget = $_POST["budget"];
$tc = $_POST["tc"];
$steamid = $steamprofile['steamid'];
$steamname = $steamprofile['personaname'];
$avatar = $steamprofile['avatarmedium'];
$dateposted = date("m-d-y");
// insert into db
if(1==1){
$insert = $link->query("INSERT INTO livepost (title, desc, date, skills, budget, tc, steamid, steamname, avatar, dateposted)
VALUES ('$title', '$desc', '$date' , '$skills' , '$budget', '$tc', '$steamid', '$steamname', '$avatar', '$dateposted')");
header('Location: index');
} else {
header('Location: index?insertdidntwork');
}
日期和描述在 mysql 中是 keywords。您必须转义列名:
$insert = $link->query("INSERT INTO livepost (title, `desc`, `date`, skills, budget, tc, steamid, steamname, avatar, dateposted)
VALUES ('$title', '$desc', '$date' , '$skills' , '$budget', '$tc', '$steamid', '$steamname', '$avatar', '$dateposted')");
提示 1:了解 prepred statemts7
提示 2:执行 SQL 语句后检查错误。
提示 3:您的 if else 语句没有检查插入是否有效。
@Jens 已经指出 keywords
。
使用准备好的 语句。
<?php
if(1==1){
$insert = $link->prepare("INSERT INTO livepost (title, `desc`, `date`, skills, budget, tc, steamid, steamname, avatar, dateposted) VALUES (?,?,?,?,?,?,?,?,?,?)");
$insert->bind_param("sss",$title,$desc,$date,$skills,$budget,$tc,$steamid,$steamname,$avatar,$dateposted );
$insert->execute();
header('Location: index');
} else {
header('Location: index?insertdidntwork');
}
可能是我认为问题出在这一行。 $dateposted = date("m-d-y");
$dateposted = date("Y-m-d");
日期应采用 Y-m-d
格式。
像这样试一次。并且,请回复。
也许你可以试试这个
你应该总是使用 $mysqli->error() 函数来知道你有什么类型的错误
<?php
$title = $_POST["title"];
$desc = $_POST["desc"];
$date = $_POST["date"];
$skills = $_POST["skills"];
$budget = $_POST["budget"];
$tc = $_POST["tc"];
$steamid = $steamprofile['steamid'];
$steamname = $steamprofile['personaname'];
$avatar = $steamprofile['avatarmedium'];
$dateposted = date("m-d-y");
// insert into db
if (1 == 1) {
$insert = $link ->query("INSERT INTO livepost (`title`,`desc`,`date`,`skills`,`budget`,`tc`,`steamid`,`steamname`,`avatar`,`dateposted`)
VALUES ('".$title."', '".$desc."', '".$date."' , '".$skills."' , '".$budget."', '".$tc."', '".$steamid."', '".$steamname."', '".$avatar."', '".$dateposted."')") or die($mysqli -> error . __LINE__);
header('Location: index');
} else {
header('Location: index?insertdidntwork');
}
?>
在尝试插入 mySQL 数据库时,我没有收到任何错误,但 phpmyadmin 查询中没有显示任何内容。这是我尝试插入的 php 文件的代码。我知道这不是最好的方法,但这是我目前所拥有的。
<?php
require 'steamauth/steamauth.php';
require 'php/main.php';
require 'php/db.php';
$title = $_POST["title"];
$desc = $_POST["desc"];
$date = $_POST["date"];
$skills = $_POST["skills"];
$budget = $_POST["budget"];
$tc = $_POST["tc"];
$steamid = $steamprofile['steamid'];
$steamname = $steamprofile['personaname'];
$avatar = $steamprofile['avatarmedium'];
$dateposted = date("m-d-y");
// insert into db
if(1==1){
$insert = $link->query("INSERT INTO livepost (title, desc, date, skills, budget, tc, steamid, steamname, avatar, dateposted)
VALUES ('$title', '$desc', '$date' , '$skills' , '$budget', '$tc', '$steamid', '$steamname', '$avatar', '$dateposted')");
header('Location: index');
} else {
header('Location: index?insertdidntwork');
}
日期和描述在 mysql 中是 keywords。您必须转义列名:
$insert = $link->query("INSERT INTO livepost (title, `desc`, `date`, skills, budget, tc, steamid, steamname, avatar, dateposted)
VALUES ('$title', '$desc', '$date' , '$skills' , '$budget', '$tc', '$steamid', '$steamname', '$avatar', '$dateposted')");
提示 1:了解 prepred statemts7
提示 2:执行 SQL 语句后检查错误。
提示 3:您的 if else 语句没有检查插入是否有效。
@Jens 已经指出 keywords
。
使用准备好的 语句。
<?php
if(1==1){
$insert = $link->prepare("INSERT INTO livepost (title, `desc`, `date`, skills, budget, tc, steamid, steamname, avatar, dateposted) VALUES (?,?,?,?,?,?,?,?,?,?)");
$insert->bind_param("sss",$title,$desc,$date,$skills,$budget,$tc,$steamid,$steamname,$avatar,$dateposted );
$insert->execute();
header('Location: index');
} else {
header('Location: index?insertdidntwork');
}
可能是我认为问题出在这一行。 $dateposted = date("m-d-y");
$dateposted = date("Y-m-d");
日期应采用 Y-m-d
格式。
像这样试一次。并且,请回复。
也许你可以试试这个 你应该总是使用 $mysqli->error() 函数来知道你有什么类型的错误
<?php
$title = $_POST["title"];
$desc = $_POST["desc"];
$date = $_POST["date"];
$skills = $_POST["skills"];
$budget = $_POST["budget"];
$tc = $_POST["tc"];
$steamid = $steamprofile['steamid'];
$steamname = $steamprofile['personaname'];
$avatar = $steamprofile['avatarmedium'];
$dateposted = date("m-d-y");
// insert into db
if (1 == 1) {
$insert = $link ->query("INSERT INTO livepost (`title`,`desc`,`date`,`skills`,`budget`,`tc`,`steamid`,`steamname`,`avatar`,`dateposted`)
VALUES ('".$title."', '".$desc."', '".$date."' , '".$skills."' , '".$budget."', '".$tc."', '".$steamid."', '".$steamname."', '".$avatar."', '".$dateposted."')") or die($mysqli -> error . __LINE__);
header('Location: index');
} else {
header('Location: index?insertdidntwork');
}
?>