相关疑难解决方法(0)

如何在PHP中阻止SQL注入?

如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)

这是因为用户可以输入类似的内容value'); DROP TABLE table;--,查询变为:

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)

可以采取哪些措施来防止这种情况发生?

php mysql sql security sql-injection

2776
推荐指数
28
解决办法
166万
查看次数

php mysql bind-param,如何为更新查询准备语句

我有一个mysqli查询与以下代码:

$db_usag->query("UPDATE Applicant SET phone_number ='$phone_number', 
street_name='$street_name', city='$city', county='$county', zip_code='$zip_code', day_date='$day_date', month_date='$month_date',
 year_date='$year_date' WHERE account_id='$account_id'");
Run Code Online (Sandbox Code Playgroud)

但是,所有数据都是从HTML文档中提取的,所以为了避免错误,我想使用预准备语句.我找到了PHP文档,但没有UPDATE示例

mysqli stmt bind param

php mysql mysqli prepared-statement bindparam

26
推荐指数
1
解决办法
6万
查看次数

更新查询PHP MySQL

任何人都可以帮助我理解为什么这个更新查询没有更新我的数据库中的字段?我在我的php页面中有这个从数据库中检索当前值:

<?php

  $query = mysql_query ("SELECT * FROM blogEntry WHERE username = 'bobjones' ORDER BY id DESC");

  while ($row = mysql_fetch_array ($query)) 
  {
      $id = $row['id']; 
      $username = $row['username'];
      $title = $row['title'];
      $date = $row['date'];
      $category = $row['category'];
      $content = $row['content'];


    ?>
Run Code Online (Sandbox Code Playgroud)

这是我的HTML表单:

<form method="post" action="editblogscript.php">
ID: <input type="text" name="id" value="<?php echo $id; ?>" /><br />
Username: <input type="text" name="username" value="<?php echo $_SESSION['username']; ?>" /><br />
Title: <input type="text" name="udtitle" value="<?php echo $title; ?>"/><br />
Date: <input type="text" name="date" value="<?php …
Run Code Online (Sandbox Code Playgroud)

php mysql database blogs phpmyadmin

20
推荐指数
3
解决办法
23万
查看次数

意外的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING错误

我一直茫然地看着这个错误,似乎无法知道问题是什么.当我运行查询时,我收到此错误:

意外的T_ENCAPSED_AND_WHITESPACE,期望此行的T_STRING或T_VARIABLE或T_NUM_STRING:

$sqlupdate1 = "UPDATE table SET commodity_quantity=$qty WHERE user=$rows['user'] ";
Run Code Online (Sandbox Code Playgroud)

php mysql select

17
推荐指数
3
解决办法
14万
查看次数

将数据插入表(mysqli insert)

我一直在看这段代码一段时间,我看不出问题出在哪里.我一直在阅读整个StackOverflow,但仍无法看到我的错误.

<?php

mysqli_connect("localhost","root","","web_table");
mysql_select_db("web_table") or die(mysql_error());

if (mysqli_connect_errno()) {

  echo "Failed to connect to MySQL: " . mysqli_connect_error();

}
echo "<p> Connection Successful!"

mysqli_query('INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)');


echo "<p>Insert successfull";

?>
Run Code Online (Sandbox Code Playgroud)

错误在第13行的某处,那就是mysqli_query('insert....我试图用http://www.w3schools.com/php/php_mysql_insert.asp来帮助自己,但这对我帮助不大.

php database mysqli sql-insert

12
推荐指数
1
解决办法
10万
查看次数

插入包含撇号(单引号)的数据时出现MySQL错误?

当我的插入查询包含引号(例如Kellog's)时,它无法插入记录.

错误味精:

您的SQL语法有错误; 查看与您的MySQL服务器版本相对应的手册,以便在's','Corn Flakes 170g','$ 15.90','$ 15.90','$ 14.10',' - '''附近使用正确的语法1MySQL更新错误:

第一's',应该是Kellogg's.

有什么解决方案吗?

php mysql

11
推荐指数
2
解决办法
5万
查看次数

如何在mySQL LIKE查询中使用PHP字符串?

我试图找到与特定模式匹配的行数.在这个例子中,所有以"123"开头:

这是有效的:

$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '123%'");
$count = mysql_num_rows($query);
Run Code Online (Sandbox Code Playgroud)

问题是LIKE会有所不同,所以我试图在脚本中定义它,然后执行查询,但这不起作用:

$prefix = "123";
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE $prefix.'%'");
$count = mysql_num_rows($query);
Run Code Online (Sandbox Code Playgroud)

如何在第二个示例中使此查询正常工作?

编辑:我也没有期限尝试过(也没有工作):

$query = mysql_query("SELECT * FROM table WHERE the_number LIKE $prefix'%'");
Run Code Online (Sandbox Code Playgroud)

php mysql sql string

11
推荐指数
1
解决办法
12万
查看次数

mysqli_fetch_assoc()期望参数1为mysqli_result,给定布尔值

可能重复:
PHP:警告:sort()期望参数1是数组,给定资源

我是PHP和MySQL的新手,我只是想不出这个.我在论坛周围搜索过但没有找到我能理解的答案.我最初使用的是mysql_fetch_assoc(),但我只能搜索数字,并且在搜索字母时也收到了错误.我希望我在这里走在正确的轨道上.提前感谢您的帮助!

$con = mysqli_connect($hostname,$username,$password) or die ("<script language='javascript'>alert('Unable to connect to database')</script>");
mysqli_select_db($con, $dbname);

if (isset($_GET['part'])){
    $partid = $_GET['part'];
    $sql = 'SELECT * 
        FROM $usertable 
        WHERE PartNumber = $partid';

    $result = mysqli_query($con, $sql);
    $row = mysqli_fetch_assoc($result);

    $partnumber = $partid;
    $nsn = $row["NSN"];
    $description = $row["Description"];
    $quantity = $row["Quantity"];
    $condition = $row["Conditio"];
}
Run Code Online (Sandbox Code Playgroud)

php search mysqli

9
推荐指数
2
解决办法
22万
查看次数

使用PHP向MySQL插入NULL的最佳实践

function save($gmt, $name, $address, $phone, $remark)
{
    $query= "INSERT INTO `user` (`gmt`, `name`, `address`, `phone`, `remark`) VALUES ('$gmt', '$name', '$address', '$phone', '$remark')";
    mysql_query($query);
}
Run Code Online (Sandbox Code Playgroud)

这里的地址,电话和备注可以是NULL值.我需要它,以便当我将null参数传递给我的函数时,它在数据库中存储一个空值(NULL).我需要知道这样做的最佳解决方案是什么.

谢谢.

php mysql null insert

9
推荐指数
2
解决办法
2万
查看次数

如何在PHP脚本中正确构造SQL查询?

我正在尝试创建一个SQL查询以将用户信息插入到数据库中.在$fname$lname变量包含正确的值("约翰"和"李四"),但查询失败.这是我的代码:

$fname = $_POST['first_name'];
$lname = $_POST['last_name'];  
$sql = "INSERT INTO users (fname, lname) VALUES ($fname, $lname)";
mysqli_query($conn, $sql);
Run Code Online (Sandbox Code Playgroud)

检查错误消息后,我发现此查询失败并显示错误消息

"字段列表"中的未知列"John"

如何正确地将变量包含到SQL查询中以使其在没有错误的情况下运行?

  • 这个问题不是我熟悉的SQL语法,而是关于使用PHP脚本中的变量动态创建查询的规则.
  • 我不想要一个只能消除即时错误的快速补丁,而是一个无错误且安全的最先进解决方案.

php sql

9
推荐指数
1
解决办法
1451
查看次数