При выборе кортежа разверните его, чтобы включить ПК. После того как вы привязали свой атрибут к переменной, вы можете удалить кортеж, присвоив where-clause с помощью PK.
Вот пример. Увы, пример написан в процедурной PHP, я не кодировал OO-php уже некоторое время. Извини за это. Тем не менее, я думаю, основная идея передана. Пожалуйста, дайте мне знать иначе.
Учитывая, что база данных выглядит следующим образом:
CREATE TABLE `pin_list` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`available_pins` CHAR(8) NOT NULL ,
`aux` VARCHAR(14) NOT NULL ,
PRIMARY KEY (`id`)
) ENGINE = MYISAM ;
mysql> select * from pin_list;
+----+----------------+-----+
| id | available_pins | aux |
+----+----------------+-----+
| 1 | 43236543 | f |
| 2 | 43236523 | f |
| 3 | 43266523 | f |
| 4 | 48266523 | f |
| 5 | 48264823 | f |
+----+----------------+-----+
5 rows in set (0.00 sec)
РНР-скрипт может быть записан следующим образом:
mysql_connect('mysql_server','user-id','pwd');
mysql_select_db('database-name');
//Select the available pin and its PK.
$query = "SELECT id, available_pins FROM pin_list ORDER BY RAND() LIMIT 0,1";
$rs = mysql_query($query);
//Select id and available_ping into an array
$pinarray = mysql_fetch_array($rs);
echo "The pin: " . $pinarray[1]; //Do something with it
//Save the primary key (PK, here: the id-attribute) for use in delete statement
$pk = $pinarray[0];
//Now: delete the pin that you have fetched from the database
echo "DELETE FROM pin_list WHERE id = " . $pk; //echo to debug sql-statements in php.
//Uncomment to delete
//$del_qry = "DELETE FROM pin_list WHERE id = " . $pk;
//mysql_query($del_qry)
, если вы установите PDO режим исключения для, он будет возвращать логическое значение ложь для поэтому, '$ result = $ sth-> execute (..) или die ($ this-> db :: errorInfo), что-то должно помочь. –