0
我一直試圖讓這個工作近一個星期,我不知道爲什麼它不起作用。我有另一個頁面非常相似,它沒有問題。我在這裏錯過簡單的東西嗎?它連接到數據庫,但沒有插入數據。我檢查了3次sql語法並使用了一個在線檢查器,對我來說一切都很正常。PHP:插入到sql
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Authorizing Login</title>
</head>
<body>
<?php
session_start();
$username = $_SESSION["username"];
echo "'$username'";
$address = $_POST["address"];
$city = $_POST["city"];
$state = $_POST["state"];
$ccno = $_POST["CCNo"];
$ccexpm = $_POST["CCexpM"];
$ccexpy = $_POST["CCexpY"];
$query = "INSERT INTO Users (address,city,state,ccno,ccexpm,ccexpy) VALUES (?,?,?,?,?,?) WHERE username=$username";
echo "$query";
connectdb();
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ssssss", $address,$city,$state,$ccno,$ccexpm,$ccexpy);
$stmt->execute();
?>
<?php
function getDbParms()
{
$trimmed = file('parms/dbparms.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$key = array();
$vals = array();
foreach($trimmed as $line)
{
$pairs = explode("=",$line);
$key[]=$pairs[0];
$vals[]=$pairs[1];
}
$mypairs = array_combine($key,$vals);
$myDbparms = new DBparmsClass($mypairs['username'],$mypairs['password'],
$mypairs['host'],$mypairs['db']);
return $myDbparms;
}
function connectdb()
{
$mydbparms = getDbParms();
$mysqli = new mysqli($mydbparms->getHost,$mydbparms->getUsername(),
$mydbparms->getPassword(),$mydbparms->getDb());
if($mysqli->connect_error)
{
die('Connect Error (' . $mysqli->connect_errno . ')' . $mysqli->connect_error);
}
else
{
echo"Connected";
}
return $mysqli;
}
class DBparmsClass
{
private $username="";
private $password="";
private $host="";
private $db="";
// Constructor
public function __construct($myusername,$mypassword,$myhost,$mydb)
{
$this->username = $myusername;
$this->password = $mypassword;
$this->host = $myhost;
$this->db = $mydb;
}
// Get methods
public function getUsername()
{
return $this->username;
}
public function getPassword()
{
return $this->password;
}
public function getHost()
{
return $this->host;
}
public function getDb()
{
return $this->db;
}
// Set methods
public function setUsername ($myusername)
{
$this->username = $myusername;
}
public function setPassword ($mypassword)
{
$this->password = $mypassword;
}
public function setHost ($myhost)
{
$this->host = $myhost;
}
public function setDb ($mydb)
{
$this->db = $mydb;
}
}
?>
</body>
</html>
你需要設置'session_start'之前的任何內容發送到瀏覽器 – RamRaider
頭之前可能輸出。在打開PHP標記 (例如'<?php error_reporting(E_ALL);)後立即在文件頂部添加錯誤報告。 ini_set('display_errors',1);'然後你的代碼的其餘部分,看看它是否產生任何東西, 以及'或die(mysqli_error($ mysqli))'到'mysqli_query()'。 –
也INSERT沒有WHERE子句,不是那樣。很可能你想要使用UPDATE。 http://dev.mysql.com/doc/en/insert.html --- http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html ---檢查錯誤http://php.net/manual/en/mysqli.error.php –