2017-10-14 150 views
1

每次我提交我的网站的表单时,它只会创建一个新的ID。但是其他所有的值都是空的,我该怎么办?无法将文本值上传到mysql

screenshot of table

<?php 
error_reporting(E_ALL);ini_set('display_errors',1); 

$servername = "localhost"; 
$username = "seamaszhou"; 
$password = "123456"; 
$dbname = "guest"; 




$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, 
$password); 
// set the PDO error mode to exception 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

// prepare sql and bind parameters 
$stmt = $conn->prepare("INSERT INTO guest 
(guestName,guestEmail,guestContent) 
VALUES (:guestName, :guestEmail, :guestContent)"); 

$stmt->bindParam(':guestName', $guestName); 
$stmt->bindParam(':guestEmail', $guestEmail); 
$stmt->bindParam(':guestContent', $guestContent); 

// insert a row 
$guestName = "$guestName"; 
$guestContent = "$guestContent"; 
$guestEmail = "$guestEmail"; 
$stmt->execute(); 



?> 

回答

4

因为你没有设置任何值。当你这样做:

$guestName = "$guestName"; 

变量$guestName被设置为包含可变$guestName的当前值的字符串。由于它不包含任何内容,因此只需将其设置为空字符串即可。

使用实际值。例如:

$guestName = "Some name"; 

或者,如果你从字面上想要一个变量名作为一个字符串,用单引号所以它不会解释为一个变量:

$guestName = '$guestName'; 
+0

见有关[PHP手册字符串](http://php.net/manual/en/language.types.string.php)并阅读“可变扩展”。 –

+0

感谢大卫的帮助。我其实想要制作一个表单让用户填写这些信息,然后提交给我的服务器。我该怎么做?我尝试了'$ guestContent = $ _ POST ['guestContent'];'但似乎不起作用。 –

+0

@seamaszhou:有什么不适合呢?这个价值是否被首先发布?显示的代码不包含任何HTML表单,您需要这些表单才能拥有HTML表单。 – David