2015-03-02 3 views
-1

Мой код для обновления информации о пользователе:Почему этот связанный запрос MySQL не запускается?

if($update_stmt = $link_reg->prepare("UPDATE email_pass SET password=?, salt=?, customer_id=?, subscription_id=?, subscription_datetime=? WHERE email=?")){ 
    $update_stmt->bind_param('ssssss', $new_password, $random_salt, $new_customer_id, $new_sub_id, $new_sub_datetime, $new_email); 

    if($update_stmt->errno){ 
     echo($update_stmt->error); 
    } 

    // Execute prepared query 
    if($update_stmt->execute()){ 
     // MORE CODE HERE 
    } else { 
     echo("ERROR?"); 
    } 
} 

Когда я бегу, я не получаю обратную связь. Таблица моих данных не обновляется, но сообщение echo также отсутствует.

Есть ошибки где-то? Почему код не будет выполнен правильно?

EDIT

Вот некоторые данные UPDATE выборки и столбцов таблицы

$new_password = '532a69d8124604e33e9f45a8c9xbea92c342cbd5a3f847f770816dbd97975b2769f52a25806ead6100c1ac1a9a1a4de6b1641279a26854fba7c162caffca8e9f'; 
$random_salt = 'b6a1062d2c07c3aa900cbe9777d4670192f77241ad0b5ceb5f7968e3107f6d719b450d2ac37165e7827f53c2005797c985deddb9bec71724948bcd833ea72e87'; 
$new_customer_id = '19582601'; 
$new_sub_id = 'crj94x'; 
$new_sub_datetime = '2014-02-25 19:41:56'; 
$new_email = '[email protected]'; 

CREATE TABLE Синтаксис:

CREATE TABLE `email_pass` (
`row_id` int(11) NOT NULL AUTO_INCREMENT, 
`email` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
`password` char(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
`salt` char(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
`customer_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
`subscription_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
`subscription_datetime` datetime NOT NULL, 
PRIMARY KEY (`row_id`) 
) ENGINE=MyISAM AUTO_INCREMENT=239 DEFAULT CHARSET=latin1 
+0

так что вы можете показать нам образец данных в таблице? и значения данных, которые вы пытаетесь обновить? – Alex

+0

, если нет эха вообще, тогда у вас есть сообщение об ошибке .... так что включите его – developerwjk

+0

Начните с добавления 'error_reporting (E_ALL);' как самую первую строку. – RobIII

ответ

0

Я попробовал ваш код и он работает. У вас есть код WHERE email=?, который заполнен $new_email. Может быть, вы пытаетесь найти запись для обновления, ища новое электронное письмо, а не текущий адрес электронной почты (или where row_id = ...)?

I.e. вы не получаете никаких ошибок, и ничего не обновляется, потому что вы не получаете совпадения в своем email = <new email> где предложение.

0

Welp, оказывается, я забыл предоставить пользователю MySQL разрешение на использование UPDATE. Это могло только SELECT и INSERT.