我也尝试将新数字输入到数据库中(仅当它尚不存在时),为了做到这一点,我正在执行以下操作
if (isset($_POST['Number'])) {
$number = ($_POST['Number']);
$NCheck = "SELECT COUNT(*) FROM `DS_Numbers` WHERE `Number` = '$number' ";
$stmt = $dbCon->prepare($sql);//* prepared statement for result which populates table
$stmt->execute();
$result = $stmt->fetchColumn(0);
if($result > 0){ // if there is a value then block
$ENumber = "This Number already exists";
$errors[] = 'error';
} else {
echo "number done";// echo statement to see that it has reached this
$number1 = ($_POST['Number']);
}
} else {
$errors[] = 'error';
$ENumber = "Please enter only digits from 0-9";
}
当前发生的情况是我的 PDO 语句没有返回,因此我的结果值始终为 0,但我的研究均未表明我有问题
对我哪里出错有什么建议吗? 我从页面上的 HTML 表单获取 Number,那边没有问题。
最佳答案
首先要注意的是,您正在一个名为 $NCheck
的变量中编写查询,而不是 $sql
。
所以这一行
$stmt = $dbCon->prepare($sql);
应该是
$stmt = $dbCon->prepare($NCheck);
另请注意,使用 PDO 的主要优点之一是使用绑定(bind)参数,但您没有这样做,并且实际上暴露于 SQL 注入(inject),因为您只是添加在查询中 POST 中获得的值.
关于php - 检查 PDO 语句的结果以运行条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33804833/