Оператор обновления следующего оператора SQL не работает.
После исполнения написано:
Query performed correctly: 0 row(s) affected.
Столбец timescount должен увеличиваться на 1 после каждого вызова, но этого не происходит. Мне нужны ваши экспертные глаза, чтобы изучить заявление. Я также показал мою схему базы данных под кодом.
require '15_12.php';
//Now, let us create an instance of mydb.
$mydb = new mydb ("localhost","root","");
//Select a database to use.
$mydb->selectdb ("myquotes");
//Then, let's try to return a row set.
$adata = $mydb->getrows ("SELECT url_string FROM tshirt WHERE timescount = 0 ORDER BY url_id ASC LIMIT 3");
for ($i = 0; $i < count ($adata); $i++){
$result = PIPHP_GetLinksFromURL($adata[$i]);
echo "<ul>";
for ($j = 0 ; $j < count($result) ; ++$j) {
echo "<li>$result[$j]</li>";
}
//Now, hold the row in a variable
$url_escaped = $adata[$i];
//Now, let's perform an action.
$mydb->execute ("UPDATE tshirt SET timescount=timescount+1 WHERE url_string='url_escaped'");}
Структура базы данных
CREATE TABLE IF NOT EXISTS `tshirt` (
`url_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`url_string` varchar(2048) NOT NULL,
`timescount` int(11) unsigned NOT NULL,
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`url_id`)
)
Вы скучаете по $
в вашей переменной, которая вызывает его использование в качестве строкового литерала:
$mydb->execute ("UPDATE tshirt SET timescount=timescount+1 WHERE url_string='url_escaped'");
^^^^
HERE
должно быть
$mydb->execute ("UPDATE tshirt SET timescount=timescount+1 WHERE url_string='$url_escaped'");
Других решений пока нет …