我最近正在尝试学习PDO在我的数据库连接中的使用,因为我知道这是最“未来的证明”。然而,在让我的最小工作示例正常工作时,我遇到了一个问题。打开提交我得到两个42000的错误。报告的错误在同一行($stmt = $db->prepare("INSERT INTO fieldsql ('fieldsql') VALUES (:table_test )“););),但我尝试了不同的变体,我认为它可能在这一行,但没有成功。我已删除我的用户名和密码详细信息。
谢谢!
<html>
<body>
<form method="post">
<table class="dd" width="100%" id="data">
<td>Field</td>
<td>:</td>
<td width="17%"><input type='textarea' name='field'/></td>
</table>
<input name='submit' type='submit' value='submit'/>
</form>
<?php
$db = new PDO('mysql:dbname=table_name;host=localhost', 'user', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
if(isset($_POST['submit']))
{
$field = $_POST['field'];
$stmt = $db->prepare("INSERT INTO table_test ('fieldsql') VALUES (:field)");
$stmt->execute( array('fieldsql' => $field) );
}
$link = null;
?>
</body>
</html>对于完整性,错误是:致命错误:未捕获异常'PDOException‘,并显示消息'SQLSTATE42000:语法错误或访问冲突: 1064您的SQL语法中存在错误;请查看与您的MySQL服务器版本对应的手册,了解要使用的正确语法(’fieldsql‘)值(?)’在第20行的C:\wamp\www\sqlinject.php中的第1‘行
PDOException: SQLSTATE42000:语法错误或访问冲突: 1064您的SQL语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,以获取正确的语法以使用接近''fieldsql')的值(?)‘在C:\wamp\www\sqlinject.php的第1行第20行
发布于 2016-02-16 06:56:16
这一点:
$stmt = $db->prepare("INSERT INTO `table_test`(`fieldsql`) VALUES(:field)");
$stmt->execute( array(':field' => $field) );https://stackoverflow.com/questions/35420612
复制相似问题