【发布时间】:2017-03-25 15:38:31
【问题描述】:
我正在尝试创建一个非常简单的网络应用程序来检查一个元素是否在数据库中。
如果元素在数据库中至少存在一次,则回显“YES”,否则如果该元素不存在,则回显“NO”。
这是我的代码:
$mysql = mysqli_connect(/* can't share anything here */) or die ("ERROR CONNECTING TO THE DB");
if(isset($_POST['submit'])) {
$theAddress = $_POST['url'];
$result = "SELECT * FROM data WHERE url = " . $theAddress;
$query = mysqli_query($mysql, $result);
if (!$query) {
printf("Error");
} else {
printf("NO ERROR");
}
这里的问题是 PHP 总是回显“错误”。为什么?
【问题讨论】:
-
学习使用参数将值放入查询中。出于各种原因,您应该从第一天开始学习这一点。其中之一是防止诸如此类的语法错误。注意:如果您在运行之前打印出查询,则语法错误可能很明显。还有一条建议:字符串应该被称为
$sql或$query。$result不是一个合理的查询字符串名称。 -
尝试用
$result = "SELECT * FROM data WHERE url = '" . $theAddress."'";替换$result = "SELECT * FROM data WHERE url = " . $theAddress; -
使用准备好的语句