编辑纠正线echo "Error: " + $e->getMessage;
。
我正在尝试创建一个简单的示例,只是为了从表单添加数据并使用PHP将数据上传到数据库。
HTML code:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Rich Text</title>
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script>tinymce.init({
selector:'textarea',
plugins: "link"
});</script>
</head>
<body>
<form class="formulario" action="index.php" method="post">
<p>Inserta título</p>
<textarea name="texto" rows="8" cols="80"></textarea>
<input type="submit" name="enviar" value="enviar">
</form>
</body>
</html>
和PHP代码:
<?php
try {
$conexion = new PDO('mysql:host;localhost=Blog', 'root', '' );
} catch (Exception $e) {
echo "Error: " . $e->getMessage;
}
if (isset($_POST['enviar']) and $conexion) {
$texto = $_POST['texto'];
echo $texto;
$statement = $conexion->prepare("INSERT INTO art (ID, articulo) VALUES (NULL, $texto)");
$statement->execute();
}
require 'index.view.php';
?>
是否需要指定ID列,因为它是自动增量?
答案 0 :(得分:4)
改变这个:
$statement = $conexion->prepare("INSERT INTO art (ID, articulo) VALUES (NULL, $texto)");
对此:
$statement = $conexion->prepare("INSERT INTO art (articulo) VALUES (:texto)");
$statement->bindParam(':texto', $texto, PDO::PARAM_STR);
您无需指定不会更改的列,例如自动增量列(ID
)。这个专栏将照顾自己。
使用BindParam
是将数据 安全 插入数据库的正确方法之一。
答案 1 :(得分:0)
请参阅How do I get PHP errors to display?
您可以使用+符号连接php中的字符串。连接
echo "Error: " . $e->getMessage;
要连接数据库,您应该使用
$conexion = new PDO("mysql:host=localhost;dbname=Blog", root, '');
如果您将表配置为自动增量,则不需要插入ID。