如何在php中使用implode数组更新MySQL表?

时间:2014-08-26 13:53:38

标签: php mysql

我正在尝试使用PHP中的内爆数组更新MySQL表,但我无法实现目标。

这是我的代码

retrive.php

<?php
$con=mysqli_connect("localhost","root","root","helixdemo");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id=1;
$result = mysqli_query($con,"SELECT * FROM employee
    WHERE id='1'");

$focus = array();
while($row = mysqli_fetch_array($result)) {
    $focus=explode(",",$row['name']);
?>
<?php
}
mysqli_close($con);
?>
<html>
<body>
<form action="update1.php" method="post">
<input type="text" name="name" value="shakti">
<input type="text" name="name" value="shakti">
<input type="checkbox" name="cbox[]" value="Item 1"  <?php if(in_array("Item 1",$focus)) { ?> checked="checked" <?php } ?>/>Item 1
<input type="checkbox" name="cbox[]" value="Item 2"  <?php if(in_array("Item 2",$focus)) { ?> checked="checked" <?php } ?>/>Item 2
<input type="checkbox" name="cbox[]" value="Item 3"  <?php if(in_array("Item 3",$focus)) { ?> checked="checked" <?php } ?> />Item 3
<input type="checkbox" name="cbox[]" value="Item 4" />Item 4
<input type="checkbox" name="cbox[]" value="Item 5" />Item 5

<input type="submit">
</form>
</body>
<html>

update.php

 <?php
$con=mysqli_connect("localhost","root","root","HelixDemo");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$items = implode(",",$_REQUEST['cbox']);
$sql = ('UPDATE employee
    SET name = '.$items.'
    WHERE id;');


if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
echo " record added";

mysqli_close($con);

?>

我收到以下错误

  

错误:您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近&#39; 1,项目2在哪里?&#39;在第2行

如何解决我的问题?

2 个答案:

答案 0 :(得分:1)

你的第一个问题是引用。您需要引号,因为nameVARCHAR

您的第二个问题是您要更新的行的ID,您也应该发送它(使用隐藏的输入)并将其存储在变量$id中。

代码应该是:

$sql = ('UPDATE employee
    SET name = \''.$items.'\'
    WHERE id = '.$id.' ;');

答案 1 :(得分:1)

您的更新声明错误

$sql = ('UPDATE employee SET name = '.$items.' WHERE id;');

应该是:

$sql = "UPDATE employee SET name = '".$items."' WHERE id=1";

请注意单引号和双引号以及赋值给id。