【问题标题】:Failed to write sql code with php into new php file使用 php 将 sql 代码写入新的 php 文件失败
【发布时间】:2019-06-09 13:43:16
【问题描述】:

嘿,伙计们,当我尝试用 php 写入另一个 php 文件时,我总是失败... 它总是删除我新文件中的 $con 和 $result 但为什么呢? 提前致谢!

试图用 fwrite($newfile, $txt); fclose($newfile);进入一个 php 文件但失败了......

<?php
$con=mysqli_connect(\"localhost\",\"dbuser\",\"pw\",\"db\");

if (mysqli_connect_errno())
{
echo \"Failed to connect to MySQL: \" . mysqli_connect_error();
}

$result = mysqli_query($con,\"SELECT * FROM me where me_genre like '%$var7%' LIMIT 6\");

while($row = mysqli_fetch_array($result))
{
echo \"</div>\";
}

mysqli_close($con);
?>

$con 和 $result 没有出现在新文件中...

【问题讨论】:

  • 请从您的代码中删除所有斜杠,它们没有用。
  • 我认为这是一个文本文字,这就是斜杠存在的原因 - 但它也可能在进行变量替换并替换它认为是变量的内容。您将需要转义变量的所有 $ - \$con 等。
  • 然后我得到一个 500 错误
  • @Nigel 我会尝试一秒钟
  • @Nigel 现在可以正常工作了,谢谢!现在我尝试了 echo \"
    \";但它显示为 echo "
    ";并再次给我一个错误

标签: php html sql


【解决方案1】:

你喜欢的条件'%$var7%'是错误的

为了构建一个有效的 ike 条件..你应该使用 concat

  SELECT * 
  FROM me 
  where me_genre like caoncat('%',$var7, '%') 
  LIMIT 6

你不应该在 sql 代码中使用 php 你有 sqliject 的风险,你应该 看看prepared statement和binding param

$sql=   "SELECT * 
  FROM me 
  where me_genre like caoncat('%', ? , '%') 
  LIMIT 6";

$con=mysqli_connect("localhost","dbuser","pw","db");

$stmt = $con->prepare($sql);
$stmt->bind_param("s",$var7);
$stmt->execute();

【讨论】:

  • 除了不使用绑定变量——它们原来的 LIKE 子句没有任何问题。
猜你喜欢
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多