我使用MAMP作为我的localhost环境,我正在尝试通过php将值从html表单传递到数据库。当我提交表单时我面临以下错误:
INSERT INTO social(facebook,google,twitter)VALUES(' sdf',' sdf',' sdf') SQLSTATE [42S02]:未找到基表或视图:1146表' firsttest.social'不存在
HTML:
<html>
<form name='form' method='post' action="m.php">
Fb : <input type="text" name="fb" >
google : <input type="text" name="google" >
twitter : <input type="text" name="twitter" >
<input type="submit" name="save_to_db" value="Submit">
</form>
</html>
&#13;
PHP:
<?php
if(isset($_POST['save_to_db'])){
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "firsttest";
try {
$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);
// sql to create table
$sql = "CREATE TABLE social (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
facebook VARCHAR(30) NOT NULL,
google VARCHAR(30) NOT NULL,
twitter VARCHAR(50),
reg_date TIMESTAMP
)";
$sql = "INSERT INTO social (facebook, google, twitter)
VALUES ('".$_POST["fb"]."','".$_POST["google"]."','".$_POST["twitter"]."')";
// use exec() because no results are returned
$conn->exec($sql);
echo "New record created successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
}
?>
&#13;
答案 0 :(得分:1)
您没有执行CREATE TABLE
查询,而是立即使用INSERT
查询覆盖它。
尝试使用xdebug之类的调试工具,这样您就可以逐步完成代码,这将有助于您轻松找到代码中的错误。
此外,每次要将数据保存到数据库时创建数据库表都是不明智的。尝试在开始使用之前设置整个数据库。