我正在使用 VScode 使用 MAMP 在 phpmyadmin 中创建一个表。没有弹出错误说它没有连接到 phpmyadmin,但是当我尝试查看表是否已创建时,它还没有。这是我的代码:
<?php
$dsn = 'mysql: host = localhost; port = 3306; dbname = the_db';
$username = 'root';
$password = 'root';
try {
$pdo = new PDO($dsn, $username, $password);
}
catch (PDOException $e) {
die('Connection error' . $e->getMessage());
}
$sql = "CREATE TABLE IF NOT EXISTS my_table(
id INT(7) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY(id)
)";
$pdo_statement = $pdo->prepare($sql);
try {
$pdo_statement->execute();
}catch (PDOException $e) {
echo "error in creating table " . $e->getMessage();
die();
}
echo "Connection successful";
$pdo_statement->close();
$pdo = NULL;
?>
我曾尝试在此处查看与此问题相关的其他问题的解决方案,但我找不到有效的方法。
从 DSN 中删除空格:
错误:
$dsn = 'mysql: host = localhost; port = 3306; dbname = the_db';
正确:
$dsn = 'mysql:host=localhost;port=3306;dbname=the_db';
详情请参阅https://www.php.net/manual/en/ref.pdo-mysql.connection.php。
此外,
PDOStatement
类没有方法close()
。当语句超出范围或请求结束时,应自动关闭并清理。