PHP无法使用PDO将数据插入数据库
当我使用simple mysqli时,我想将用户提供的数据插入数据库,它工作得很好,但当我使用PDO时,数据被插入数据库PHP无法使用PDO将数据插入数据库,php,mysql,pdo,Php,Mysql,Pdo,当我使用simple mysqli时,我想将用户提供的数据插入数据库,它工作得很好,但当我使用PDO时,数据被插入数据库 <?php $server = 'localhost'; $username = 'root'; $pass = ''; $database = 'db'; try { $conn = new PDO("mysql:host=$server;dbname=$database", $username, $pass); $conn-&g
<?php
$server = 'localhost';
$username = 'root';
$pass = '';
$database = 'db';
try {
$conn = new PDO("mysql:host=$server;dbname=$database", $username, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
$name = '';
$password = '';
$email = '';
$uid = '';
$sql = "INSERT INTO users(name,email,password,userid) VALUES(?,?,?, ?)";
if (isset($_POST['username'])) {
$name = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$uid = $_POST['uid'];
$newpass = hash("sha256", $password);
if ($name != '' && $password != '' && $email != '') {
$insertUser = $conn->prepare($sql);
$insertUser->execute($name, $email, $password, $uid);
}
}
$conn = null;
只需使用参数数组:
$sql=“插入用户(姓名、电子邮件、密码、用户ID)值(?、、?、?)”;
如果(isset($_POST['username']))
{
$name=$_POST['username'];
$password=$_POST['password'];
$email=$_POST['email'];
$uid=$_POST['uid'];
$newpass=hash(“sha256”,$password);
如果($name!=''&&$password!=''&&$email!='')
{
$insertUser=$conn->prepare($sql);
//使用数组代替普通变量
$insertUser->execute([$name,$email,$password,$uid]);
}
}
你有错误吗?@ADyson没有,我没有收到任何错误。这应该会给你一个错误execute($name,$email,$password,$uid)
所以请解释一下你运行这个代码时会发生什么。它的哪一行被执行?也许你在PHP中关闭了错误报告功能?因为正如达曼所说,你肯定会看到一个。或者代码没有输入您的if
块,因此execute
从不运行。是否进行了调试?如果我们想验证用户输入的数据是否不存在于数据库中,该怎么办?我正在以类似的方式使用select query,但无法监视select query的结果。如果您有任何想法,请与我们共享<代码>$checkUser1=“从电子邮件=?”的用户中选择*;$checkUser=$conn->prepare($checkUser);$checktUser->execute($email)代码>使用$stmt->rowCount()代码>我尝试了这种方式,但现在无法插入数据。您的代码工作完美,请看这里:完成,非常感谢您的合作