初学者php mysql:尝试运行查询时出错

时间:2017-03-25 15:38:32

标签: php html mysql mysqli

我正在尝试创建一个非常简单的Web应用程序,用于检查元素是否在数据库中。

如果元素在DB中至少定位一次,则回显“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总是回显“错误”。为什么呢?

3 个答案:

答案 0 :(得分:0)

为了成功执行SQL查询,您需要将字符串值放在quote中。

所以你的查询将是:

$result = "SELECT * FROM data WHERE url = '" . $theAddress . "'";

答案 1 :(得分:0)

您需要围绕该值引用,因为它是一个字符串。

$result = "SELECT * FROM data WHERE url = '" . $theAddress . "'";

但如果您学习使用mysqli_stmt_bind_param()准备好的查询会更好,那么您不必担心这一点。

答案 2 :(得分:0)

尝试使用这样的预处理语句:

$stmt = mysqli_stmt_init($mysql);
if (mysqli_stmt_prepare($stmt, 'SELECT * FROM data WHERE url = ?')) {
  mysqli_stmt_bind_param($stmt, "s", $theAddress);
  mysqli_stmt_execute($stmt);
  $result = mysqli_stmt_get_result($stmt);
}

文档:
http://us.php.net/manual/en/mysqli-stmt.prepare.php
http://us.php.net/manual/en/mysqli-stmt.get-result.php