简体   繁体   中英

I can't update table's columns in MySQL database

I have created a tabe with values using this command :

 CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,
  `title` text NOT NULL,
  `content` text NOT NULL,
  `price` text NOT NULL,
  `link` text NOT NULL,
  `ppcode` text NOT NULL,
  `type` text NOT NULL,
  PRIMARY KEY  (`id`)
 )

And when i use this php codes i cant update any value of the columns :

 if (isset($_POST['edit'])){
 $delsql = "UPDATE news SET title='$newsubject',content='$newdisc',link='$newlink',
            price='$newprice',ppcode='$newppcode' WHERE id = '$id'";
 $result = mysql_query($delsql) or die(mysql_error());
 echo 'OK';
 }

Note : the version of MySQL is 3.5.2.2 and the version of PHP is 5.3

Beside all the suggestion on the comments

You have

 WHERE id = '$id'";

but id is integer not text

CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,

Use mysqli_* functions or PDO!!!!

//db connection

global $conn;

$servername = "localhost";  //host name

$username = "username"; //username

$password = "password"; //password

$mysql_database = "dbname"; //database name

//mysqli prepared statement 

$conn = mysqli_connect($servername, $username, $password) or die("Connection failed: " . mysqli_connect_error());

mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong");

$stmt = $conn->prepare("UPDATE news SET title=?,content=?,link=?,price=?,ppcode=? WHERE id =?");

            $stmt->bind_param('sssdii',$newsubject,$newdisc,$newlink,$newprice,$newppcode,$id);

 //   i corresponding variable has type integer
 //  d  corresponding variable has type double
//  s   corresponding variable has type string
//  b   corresponding variable is a blob and will be sent in packets

            $stmt->execute();

            $row_count= $stmt->affected_rows;
            $stmt->close();
             $conn->close();

In image of phpmyadmin that you provided in comments you can see that A_I (auto_increment) is not active. Also primary key is not set. Set A_I to true for id and set it as primary key (under Index) in phpmyadmin. Then test it with your code.

Of course first insert new data which will have auto incremented id's.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM