Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在PDO中准备语句时遇到问题。撇号错误。_Php_Pdo - Fatal编程技术网

Php 在PDO中准备语句时遇到问题。撇号错误。

Php 在PDO中准备语句时遇到问题。撇号错误。,php,pdo,Php,Pdo,我在准备查询时遇到问题。当$artistname有撇号时,我得到一个错误 $关键字可以很好地处理撇号。我做错了什么?我如何修复它 $keyword[':keyword'.$x] = "%".$name_single."%"; $where .= '`name` LIKE :keyword'.$x; if ($name_count!=$x) { $where .= ' AND '; } $sql = "SELECT * FROM `mixtapes` WHERE

我在准备查询时遇到问题。当$artistname有撇号时,我得到一个错误

$关键字可以很好地处理撇号。我做错了什么?我如何修复它

  $keyword[':keyword'.$x] = "%".$name_single."%";

  $where .= '`name` LIKE :keyword'.$x; 
  if ($name_count!=$x) {
    $where .= ' AND ';
  }

  $sql = "SELECT * FROM `mixtapes` WHERE ".$where." AND name != '$artistname' ORDER BY `id` DESC LIMIT 40";
  $search = $db->prepare($sql);
  $search->execute($keyword);

你的准备声明并不是在准备艺人的名字。使用prepare语句时,在查询中放置占位符,然后执行向查询传递变量的操作。将artisname添加到数组中,您应该会很好

$keyword[':keyword'.$x] = "%".$name_single."%";

$where .= '`name` LIKE :keyword'.$x; 
if ($name_count!=$x) {
  $where .= ' AND ';
}

$keyword[':artistname'] = $artistname;

$sql = "SELECT * FROM `mixtapes` WHERE ".$where." AND name != :artistname ORDER BY `id` DESC LIMIT 40";
$search = $db->prepare($sql);
$search->execute($keyword);

而不是
=使用
在提问之前,请花一些时间进行搜索,看看您的问题是否已经有答案。我是@riggsfully,我只是在这个特定案例中遇到了问题。我可能是在努力寻找这个问题。