【发布时间】:2020-05-14 04:31:25
【问题描述】:
在 Visual Studio Code 中,我正在创建一个网站。我的 HTML 页面有一个获取用户数据的表单:
<form action="Data.php" style="position: fixed; top: 60px; left: 5px;" method="POST">
<fieldset>
<legend>Create Account</legend>
Username: <br>
<input type="text" name="username">
<br>
Email:<br>
<input type="text" name="email">
<br>
Password:<br>
<input type="text" name="password">
<br><br>
<input type="submit" name ="Submit" value="Create">
</fieldset>
</form>
然后将其发送到一个名为 Data.php 的 php 文件:
<?php
if(isset($_POST['Submit'])){
$host = "localhost:3306";
$username = "Arthos";
$password = "Pancake101!";
$database = "userinfo";
$user = $_POST['username'];
$email = $_POST['email'];
$pass = $_POST['password'];
$connect = mysqli_connect($host, $username, $password, $database);
$query = "INSERT INTO 'users'('username', 'email', 'password') VALUES ("'.$user.'", "'.$email.'", "'.$pass.'")";
$result = mysqli_query($connect,$query);
mysqli_close($connect);
}
?>
我不知道如何在 vs 代码中查看 php 回显或 mysql 错误。我正在使用一个基本的 html 项目,它们没有出现在调试控制台中。如果需要,我可以发送数据库的样子。
编辑: 带有 PDO 的新 php 代码,仍然无法正常工作:
<?php
echo "Made it!";
$dsn = "mysql:host=localhost;dbname=userinfo;charset=utf8mb4";
$options = [
PDO::ATTR_EMULATE_PREPARES => false, // turn off emulation mode for "real" prepared statements
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //turn on errors in the form of exceptions
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //make the default fetch be an associative array
];
try {
$pdo = new PDO($dsn, "username", "password", $options);
$stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->execute([$_POST['username'], $_POST['email'], $_POST['password']]);
$stmt = null;
} catch (Exception $e) {
error_log($e->getMessage());
exit('Something weird happened'); //something a user can understand
}
?>
编辑 2:
我得到了要运行的php文件。我不得不弄乱一些奇怪的 Visual Studio 代码,它显然找不到我的 php.exe 文件,所以现在可以工作了。
但现在我得到了错误:
我的 php 文件“找不到驱动程序”,所以我现在必须查看它。
我没有对上面Data.php副本中可以看到的代码进行任何更改。
对于最后一个问题,我需要取消注释php.ini 中的一行。如果你有这个问题,进入你的php.ini文件,编辑它,去掉之前的分号:; extension=pdo_mysql
真的应该是:extension=pdo_mysql
【问题讨论】:
-
调试控制台用于调试器输出。你配置过 Xdebug 吗?您是否使用断点和其他东西开始调试会话?如果您只想检查
echo打印的内容,您只需查看浏览器即可。 -
关于您的编辑...您是否在询问当查询崩溃时如何在 Visual Studio Code 中查看
Something weird happened?还是这个问题与编辑无关? -
两者兼而有之,我在编辑器中没有看到任何关于 php 的内容,最初的问题是为什么代码没有将数据插入到 mysql 表中
标签: mysql php visual-studio-code